【发布时间】:2011-02-23 10:05:47
【问题描述】:
我想在水晶报表的最后一页找出明细记录的数量,如果没有,我想隐藏标题部分。
【问题讨论】:
标签: crystal-reports
我想在水晶报表的最后一页找出明细记录的数量,如果没有,我想隐藏标题部分。
【问题讨论】:
标签: crystal-reports
首先,您必须创建一个公式。
然后,将其插入Details 部分。
例如@VariableA
在公式中,输入:
Shared NumberVar PageofLastField;
If OnLastRecord then PageofLastField := PageNumber;
抑制公式。
公式检查记录是否为最后一条记录。
如果是最后一条记录,则将最后一条记录所在的页码保存到共享变量PageofLastField中。
然后在标题的 Suppress 公式中,输入以下代码:
Shared NumberVar PageofLastField;
PageofLastField := PageofLastField;
if pageofLastfield <> 0 and PageNumber > PageofLastField
THEN TRUE
ELSE FALSE
【讨论】:
如果我正确理解您的问题,您应该能够在页面底部(可能是报告页脚)添加一个摘要,以便在您的详细信息部分计算一个项目。例如,我刚刚打开了一份我拥有的报告,并添加了一个摘要来计算详细信息部分中的邮政编码数量。
接下来您将看到的屏幕允许您为摘要选择计数。
接下来,我去了 Section Expert 并把它放在了 X-2 框中,与 Header Section 中的 Suppress 复选框相对。
如果计数 ({Stores.ZipCode}) > 50 则为真
如果我的详细信息部分中有超过 50 个邮政编码,这将抑制标题。在您的情况下,如果您的计数为 0,那么您会压制。这就是你要找的东西吗?
【讨论】:
根据公式结果隐藏标题很容易。困难的部分是计算出现在特定页面上的详细信息部分的数量。
AFAIK,如果没有一些棘手的格式,这是不可能的。例如,您可以构建您的报告,以便每个页面一次仅显示 3 条记录。然后,如果您的总记录数为 4(不能被 3 整除),您就知道最后一页将包含 1 条记录。
【讨论】:
只需在 PageHeader 的 Supress 公式中使用“OnLastRecord”即可解决问题。
【讨论】: