繁体   English   中英

子报表中的Crystal报表共享变量未显示在主报表的页眉中

[英]Crystal reports shared variable in sub report not displaying in page header of main report

我有一个子报告部分,其中显示与订单相关的详细信息(订单项)。 在此子报告中,我创建了一个共享变量以返回权重字段的总和:

WhilePrintingRecords;
Shared numbervar WeightTotal := Sum ({Report.TotalWeight})

在主报告中,我创建了另一个变量来显示子报告的总重量:

WhilePrintingRecords;
shared numbervar WeightTotal;
WeightTotal;

这对于在报表页脚或页面页脚中显示总计非常有用。 但是,我需要在页眉中显示此数量。

我尝试使用EvaluateAfter()函数创建另一个报告变量,以尝试将此数据带入标头部分。 那没用。

我也尝试按照以下建议按照在主报表中创建全局变量的建议进行操作: Crystal Reports:全局变量运行总计未显示在标题中

是否可以执行这样的任务? 基础数据是由sp生成的(在几个不同的报告中共享)。 我可以创建一个新的sp来简单地求和,但是我更愿意将其委托给crystal。

问题是,虽然在第二个公式中使用WhilePrintingRecords会强制Crystal在最终评估过程中比平时更晚地评估它,但这也是在评估子报表时。 这意味着将对于子报表处理主报表中的任何公式。 对于您而言,即使使用WhilePrintingRecords关键字,也要在详细信息部分的子报表之前评估标题中的公式。 该图对于理解不同的通过非常有用: Multi-Pass Reporting Process

您可以尝试使用SQL表达式为每个详细信息部分执行简单的汇总求和。 不了解您的数据源或架构,很难给出一个例子,但这是一般的想法。 只要返回标量,就可以将任何有效的SQL用于数据源。

select sum(weight)
from table
where table.orderID="table"."orderID"

另一种方法是每个订单使用一个额外的内部分组级别,完全删除子报表,并使用Crystal的sum()函数或全局变量来获得每个内部组的权重。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM