更新:可能是另一个问题吗?
我很确定我采取了正确的步骤,但如果这是一个不同的问题呢?
我有多个参数,似乎可能正在重置,但是子报告可能会计算所有参数,所以即使它正在重置,它也会重新计算我在我指定的所有多个工作单号码 . 工单号参数 .
背景
我有一份Crystal Report 2008报告,其中包含一些子报告,这些报告将其总 Value 分享回主报告以进行操作 .
子报告适用于单个记录,但在选择多个记录时不会重置,从而导致它们显示所有记录的总计 .
This is an issue with a known solution ,但是当我尝试在报告中应用它时,它似乎没有按预期工作 .
我很确定这是公式的语法或我放置它们的布局的问题 .
已知的步骤
问题是Crystal子报告没有特别重置;这是设计的 .
要强制重置报告,必须在运行子报告之前在记录级别组中插入公式(即不是报告 Headers ),以便将共享变量设置为零 .
报告的布局
-
Report Header (已删除)
-
Page Header (基本页面信息)
-
Group Header 1a - 共享变量重置公式
-
Group Header 1b - 工作订单信息
-
Details - 人工估计的子报告和材料估算的子报告
-
Group Footer 1a - 显示两个子报表总计的公式
-
Group Footer 1b - 工作订单的详细描述(无子报告)
-
Report Footer (已删除)
-
Page Footer (基本页面信息)
Shared variable creation formula in labor subreport (placed in subreport footer):
WhilePrintingRecords;
Shared CurrencyVar subTotal_LaborCosts;
subTotal_LaborCosts := Sum ({R_PFWR_ESTS_LABBYCODE.TOTALLABORCOSTS});
Shared variable formula in main report (placed in main report, Footer 1a):
WhilePrintingRecords;
Shared CurrencyVar subTotal_LaborCosts;
subTotal_LaborCosts
Shared Variable Reset Formula (placed in main report, group header 1a):
WhilePrintingRecords;
Shared CurrencyVar subTotal_LaborCosts;
subTotal_LaborCosts:=0;
谁能看到我哪里出错了?谢谢!
2 回答
如果计算是标量值,则可能需要考虑使用SQL-Expression field而不是子报表 . 字段的SQL可以与主查询相关联,可能是分组字段,您的情况 .
编辑
您似乎需要详细信息部分中每行的人工成本摘要,并且您希望在组页脚中总结这些成本 . 假设这是准确的,请按照下列步骤操作:
创建SQL表达式:
{%TOTAL_LABOR_COST}(从R_PFWR_ESTS_LABBYCODE中选择TOTALLABORCOSTS - 链接到主报表中的字段,可能是在“详细信息”部分中为每一行更改的一个--WHERE - 如果需要,组--GROUP BY)
在“详细信息”部分中放置字段
在此字段中插入摘要;放在第1组页脚中
我弄清楚问题是什么 .
真正的问题
问题不在于公式没有被重置(它是) .
问题在于我将报告字段链接到子报告参数的方式 .
我已将主报告的参数与我的子报告的参数相关联 . 实际上,这会将参数中的每个值传递给子报表,因此每次都会运行所有值 .
修复
为了解决这个问题,我更改了链接到子报表参数的值 .
我将它从主报表参数字段(具有多个值)更改为主报表中列出工单号的值(确保它只有一个) .