【问题标题】:VB6 Crystal Report Code to C# conversionVB6 Crystal Report 代码到 C# 的转换
【发布时间】:2015-06-15 16:30:51
【问题描述】:

所以我将一些现有的 Crystal Reports 从 VB6 调用的代码转移到 C#。

VB6 Crystal Report 引擎有一个在运行时与 SortFields 集合一起设置的 GroupSortFields 集合。

代码如下所示。

crystalReportEngine.GroupSortFields(0) = somepassedinstring
crystalReportEngine.SortFields(0) = somepassedinstring

能够弄清楚如何在 C# 中设置 SortFields,但找不到任何文档来设置 GroupSortFields。

有什么方向吗?

更新: 这是旧版 VB6 代码的简化版本。

CR1.ReportFileName = fullPathAndFileNameToRpt
CR1.Connect = dataConnectionString
CR1.ParameterFields(0) = "SortField;" & rptParameter & ";TRUE"
CR1.SelectionFormula = ""{Manager_Category1.List}"="SomeValue""
CR1.GroupSortFields(0) = "Sum({@ABSWeightedValue},{Manager_Category1.Category1})"
CR1.SortFields(0) = "{@ABSWeightedValue}"
CR1.PrinterStartPage = 1
CR1.PrinterStopPage = 1

【问题讨论】:

  • 在 VB 中很好地用于索引/他们使用的数组() C# 中的等价物将是 [] 也可以显示 somepassedinstring 的样子.. 你有什么错误吗.. GroupSortFields 是否期望字符串或字符串的数组[]
  • .NET Crystal 组件中没有 GroupSortFields。问题不在于如何设置数组,而是 GroupSortFields 映射到 Crystal.Net 的位置
  • 你能展示一个数据/结构的例子吗
  • 你有什么想法?为报告创建的数据库和公式。这是一个相当复杂的报告,但问题真的不在于报告,GroupSortFields 在 API 中的位置是什么?我有许多报告要在这个使用旧 API 的那部分的新进程中运行。
  • 旧代码中的GroupSortField是用来动态重置组序的吗?还有那个函数中的 0 是什么意思?

标签: c# crystal-reports vb6-migration


【解决方案1】:

你在找SortFields[i].SortType吗?

可以设置为SortFieldType.GroupSortFieldSortFieldType.RecordSortField

【讨论】:

  • 如何在运行时使用这些将 SortFields 和 GroupSortFields 设置为字符串值?例如,当前代码解析为这样的代码。 crystalReportEngine.SortFields(0) = "{@ABSWeightedValue}" 和 crystalReportEngine.GroupSortFields(0) = "Sum({@ABSWeightedValue},{Manager_Category1.Category1})"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多