Crystal Reports 2008 - 重置共享变量时遇到问题
更新:可能它是一个不同的问题?
我很确定我采取了正确的步骤,但如果这是一个不同的问题呢?Crystal Reports 2008 - 重置共享变量时遇到问题
我有多个参数,它好像可能正在重置,但是子报表可能会跨所有参数进行计算,所以即使重置,它也会重新计算所有多个工单号。已经在我的工单号码参数中指定。
背景
我有一个水晶报表2008年的报告与分享他们的总价值重新就业,为操作主报表中的几个子报告。
子报告适用于单个记录,但在选择多个记录时不会重置,导致它们显示所有记录中的总数。
这是已知解决方案的问题,但是当我试图将其应用于我的报告时,它似乎没有按预期工作。
我很确定这是一个问题,无论是与公式的语法或与我放置他们的地方的布局。
已知步骤
问题是Crystal子报表没有专门重置;这是设计。
要强制报表重置,您必须在运行子报表之前在记录级别组(即不报表标题)中插入公式,以便将共享变量设回零。共享变量复位式
的报告
- 报表头(抑制)
- 页眉(基本页信息)
- 组头1A布局组标题1b - 工作订单信息
- 详细 - 子报表劳动力的估计和子报表物料估计
- 组尾1A - 公式两个子报表
- 组尾显示总1B - 工作单的长描述(无分报告)
- 报表页脚(抑制)
- 页脚(基本页面信息)
劳动报表共用变量生成式(放置在子报表页脚):
WhilePrintingRecords;
Shared CurrencyVar subTotal_LaborCosts;
subTotal_LaborCosts := Sum ({R_PFWR_ESTS_LABBYCODE.TOTALLABORCOSTS});
在主报告共享变量式(放置在主报告,页脚1A):
WhilePrintingRecords;
Shared CurrencyVar subTotal_LaborCosts;
subTotal_LaborCosts
共享变量重置公式(放置在主报告,组标题1a中):
WhilePrintingRecords;
Shared CurrencyVar subTotal_LaborCosts;
subTotal_LaborCosts:=0;
任何人都可以看到我要去哪里错了吗?谢谢!
我想出了问题所在。
真实问题
问题不在于该公式未被重置(它是)。
问题出在我将报表字段链接到子报表参数的方式。
我已经将我的主要报告的参数链接到了我的子报告的参数。实际上,这将参数中的每个值都传递给子报表,因此它每次都运行所有值。
修复
要解决这个问题,我更改了链接到子报表参数的值。
我将它从主报表参数字段(具有多个值)更改为主报表中列出工单数(确保它只有一个)的值。
如果您的计算是一个标量值,您可能需要考虑使用SQL-Expression field而不是子报表。该字段的SQL可以与主查询相关联,可能是分组字段,您的情况。
**编辑**
看来,你想的在细节部分的每一行的劳动力成本的汇总,并且希望这些在组页脚中的摘要。假设这是正确的,请按照下列步骤操作:
-
创建SQL表达式:
- {%TOTAL_LABOR_COST} ( SELECT TOTALLABORCOSTS FROM R_PFWR_ESTS_LABBYCODE --link的场主报告,大概一个,在细节部分 --where 的每一行的变化 - 组,如果必要的话 --group BY )
在详细信息部分中放置字段
- 插入此字段的摘要;放在第1组页脚
不知道我是否正确理解。当我运行一个参数值时,我的计算是正确的。当我用一个参数的多个参数值运行它时,子报表就不会将其自身重置为零,因为下一个项目显示时,我得到的是所有显示报表的总和,而不仅仅是该报表。看来这是我见过的解决方案的一个常见问题。你能否解释一下这种方法与SQL表达式有何不同?谢谢! – SeanKilleen 2011-12-15 11:17:58