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组页脚
    +0

    不知道我是否正确理解。当我运行一个参数值时,我的计算是正确的。当我用一个参数的多个参数值运行它时,子报表就不会将其自身重置为零,因为下一个项目显示时,我得到的是所有显示报表的总和,而不仅仅是该报表。看来这是我见过的解决方案的一个常见问题。你能否解释一下这种方法与SQL表达式有何不同?谢谢! – SeanKilleen 2011-12-15 11:17:58