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

时间:2011-12-15 03:19:34

标签: layout syntax crystal-reports formula crystal-reports-2008

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

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

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

背景

我有一份Crystal Report 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;

谁能看到我哪里出错了?谢谢!

2 个答案:

答案 0 :(得分:1)

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

**编辑**

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

  • 创建SQL表达式:

    - {%TOTAL_LABOR_COST} ( 选择TOTALLABORCOSTS 来自R_PFWR_ESTS_LABBYCODE - 链接到主报表中的字段,可能是“详细信息”部分中每行更改的字段 - 哪里 - 必要时组 - 通过...分组 )

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

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

答案 1 :(得分:0)

我弄清楚问题是什么。

真正的问题

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

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

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

修复

要解决此问题,我更改了链接到子报表参数的值。

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