【问题标题】:How do I get the index of each record displayed on crystal reports?如何获取水晶报表上显示的每条记录的索引?
【发布时间】:2014-07-18 17:43:01
【问题描述】:

我正在使用 vb.net 开发 winform 应用程序。我在我的应用程序中使用水晶报表。现在我需要将当前报告中显示的每条记录的索引存储到数据库中。然后我创建另一个报告,显示所有记录的索引。我的计划是读取每条记录的页码并将它们保存在数据库中。我在报告中有一个组字段。我不知道如何逐一扫描记录并获得适当的页码。我尝试了以下代码来获取字段值,但没有成功。

msgbox(rpt.DataDefinition.FormulaFields("name").Text)

它显示了那个字段的公式。

我不知道使用以下获取记录的顺序。

msgbox(rpt.rows(0).item(0))

请帮帮我....

【问题讨论】:

  • Index? Crystal 报表中的具体含义是什么?

标签: vb.net winforms crystal-reports


【解决方案1】:

按照您的问题的解读方式,听起来您正在尝试为报告中出现的订单记录生成“索引”,并将该索引存储在数据库中以便在另一个报告中使用。我根本不清楚您要对页码做什么。

无论如何,我需要明确一点:报告的定义(您在代码示例中访问)仅表示当报告为 时数据的去向格式化 - 它不是实际数据本身

在最基本的层面上,Crystal Reports 从数据库中提取数据并在页面上为您提供合适的格式。与其尝试从数据库中取出数据,而是将其放入报告中,然后尝试读取该报告以将其放回数据库中以制作另一个报告,为什么不只是在数据库级别进行所有数据操作自己去报告之前?

如果您真的必须拥有第一个报表,那么获取格式化数据的最简单选择是将其导出到 excel 并通过 Excel API 以编程方式访问它 - Crystal Reports 没有'没有用于获取格式化数据的 API(包括生成的页码之类的东西,无论你想用它们做什么)。

【讨论】:

  • 它不能在数据库级别本身完成。在生成第一个报告本身之后就可以知道该索引。如果我有 100 条记录,那么报告中会占用很多页。当我打印整页并做一个记录簿时,我可能需要一个索引页来说明哪个记录存在于哪个页面上。在这里,我有一个组字段,会出现很多记录。所以对于每个组,我可以识别它来自哪个页码,并且我可以快速访问。所以我试图从报告中获取每个组记录的页码并保存在数据库中。
【解决方案2】:

你试图打破一些基本规则。例如,报表不应该更改数据。正确的方法是在存储过程或命令中处理数据处理,并在单独的进程中调用报表。通过这种方式,您将能够分别控制数据更改和数据可视化。

附:您的意思可能是“标识符”而不是“索引”

【讨论】:

    猜你喜欢
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    相关资源
    最近更新 更多