【问题标题】:Crystal report returns wrong total with report groups (Double the original amount)Crystal 报表返回错误的报表组总数(原始金额的两倍)
【发布时间】:2014-05-16 06:20:31
【问题描述】:

我有一个类似的报告格式

Main Report

Installment # 1

SubReport
---------------
     Group 1 (Suppressed)
        Group 2 Detail 1: 
          ID    Amount (Formula field)
          --   ------- 
           1     100


         Group 2 (Footer)
          ------------
          Total  200
          ------------

         Group 2 Detail 2: 
          ID    Amount (Formula field)
          --   ------- 
           1     300


         Group 2 (Footer)
          ------------
          Total  600
          ------------

我遇到的问题是我的第 2 组页脚中的公式字段的总数错误(我不明白为什么它们会加倍)

我分两步创建总字段。首先,我在第 2 组的详细信息部分中创建变量

我的金额公式字段

WhilePrintingRecords;

EvaluateAfter({@Share_Hundred_Percent});
EvaluateAfter({@Less_Commission});
EvaluateAfter({@Payment_NICL});
EvaluateAfter({@Payment_PRCL});

shared numberVar sumNetPayable;
numberVar result:=0;

if({Command.GENCLIENTCODE}=990) then
    result:= {@Share_Hundred_Percent}-{@Less_Commission} + {@Payment_PRCL}
else
    result:= {@Share_Hundred_Percent} - {@Less_Commission} ;

sumNetPayable := sumNetPayable + result;
result

然后我重置第 2 组页脚中的总字段(但它打印的数量是两倍)

我的公式字段显示总计

WhilePrintingRecords;
EvaluateAfter({@Net_Payable});

shared numberVar sumNetPayable;
numberVar result:= sumNetPayable;
sumNetPayable :=0;

result

更新

@SilentD。这是我发现的。我从报表设计视图中删除了两个公式(详细公式+摘要)。我只将 Sum 公式放在页脚中,它可以工作。但是当我将详细公式放入报告中时,总数翻了一番

【问题讨论】:

  • 如果结果加倍,则公式必须每条记录执行两次。还有其他引用 sumNetPayable 的公式吗?或者您的金额公式是否在报告中放置了两次?
  • @SilentD 不错的评论,用新发现更新了我的帖子。
  • Sum ({"Amount (Formula field)"},{"based on which field in group"})..这一般对我有用,您可以自定义它。如果没有隐藏奇怪的逻辑,请检查公式。 :)
  • 您是否正在重置第 2 组标题中的公式?
  • 我猜您可能有 2 个详细信息,因此当您使用计算 2 次的公式时,这就是我要求您尝试删除它的原因..

标签: crystal-reports crystal-reports-xi crystal-reports-2010 crystal-reports-8.5


【解决方案1】:

最后解决我的问题是从用于显示组页脚总数的公式字段中删除EvaluateAfter({@Net_Payable});。由于某种原因,它使计算量翻了一番。

WhilePrintingRecords;

shared numberVar sumNetPayable;
numberVar result:= sumNetPayable;
sumNetPayable :=0;

result

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多