首页 文章

Crystal Reports 2008 - 无法重置共享变量

提问于
浏览
1

更新:可能是另一个问题吗?

我很确定我采取了正确的步骤,但如果这是一个不同的问题呢?

我有多个参数,似乎可能正在重置,但是子报告可能会计算所有参数,所以即使它正在重置,它也会重新计算我在我指定的所有多个工作单号码 . 工单号参数 .

背景

我有一份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 回答

  • 1

    如果计算是标量值,则可能需要考虑使用SQL-Expression field而不是子报表 . 字段的SQL可以与主查询相关联,可能是分组字段,您的情况 .

    编辑

    您似乎需要详细信息部分中每行的人工成本摘要,并且您希望在组页脚中总结这些成本 . 假设这是准确的,请按照下列步骤操作:

    • 创建SQL表达式:

    • {%TOTAL_LABOR_COST}(从R_PFWR_ESTS_LABBYCODE中选择TOTALLABORCOSTS - 链接到主报表中的字段,可能是在“详细信息”部分中为每一行更改的一个--WHERE - 如果需要,组--GROUP BY)

    • 在“详细信息”部分中放置字段

    • 在此字段中插入摘要;放在第1组页脚中

  • 0

    我弄清楚问题是什么 .

    真正的问题

    问题不在于公式没有被重置(它是) .

    问题在于我将报告字段链接到子报告参数的方式 .

    我已将主报告的参数与我的子报告的参数相关联 . 实际上,这会将参数中的每个值传递给子报表,因此每次都会运行所有值 .

    修复

    为了解决这个问题,我更改了链接到子报表参数的值 .

    我将它从主报表参数字段(具有多个值)更改为主报表中列出工单号的值(确保它只有一个) .

相关问题