虽然打印记录不起作用

时间:2014-03-24 21:32:09

标签: crystal-reports

我有一个手动执行总计的报告,即:

shared numbervar Amount:={#Amount};
shared numbervar TotalAmount:=Amount+TotalAmount;
Amount;

然后我有一个单独的公式,试图通过将金额除以总金额来计算平均值:

whileprintingrecords;
shared numbervar TotalAmount;
if {@Amount}<>0
then
{@Amount}/TotalAmount;

尽管使用了whileprintingrecords,但总金额并未显示实际总金额,而是显示金额打印时的总金额。那么我做错了什么?

编辑: 这两个公式都在一组的页脚中。作为一项测试,我甚至删除了这些组,并将它们都放在详细信息部分中,没有任何组。我甚至删除了跑步总数,尝试将其从混音中取出,没有任何变化。

我正在尝试计算每个金额对总金额的贡献百分比。所以报告看起来像

Amount | %
$100   | 50%
$50    | 25%
$50    | 25%
____ 
$200

相反,报告最终看起来像:

Amount | %
$100   | 100%
$50    | 33%
$50    | 25%
____ 
$200

1 个答案:

答案 0 :(得分:0)

为什么不对下一个公式进行计算可能会有很多问题

  1. 与报告中的第一个公式放置相比,您的第二个公式的放置可能有误。
  2. 以及whileprintningrecords也尝试使用EvaluateAfter
  3. whileprintingrecords; EvaluateAfter(@Formula1); shared numbervar TotalAmount; if {@Amount}<>0 then {@Amount}/TotalAmount;

    编辑---------------------------------------------- ----------------------------------------------- 你在这里遇到的问题是每个级别的总量都不是最终值。就像第一个记录值是100@amount is 100 ..现在100/100现在是100%,第二个记录值是50@amount is 150所以% is 50/150 it is 33.33。最佳选择是使用子报告并将最终值200作为输入值传递给子报告,并在子报告中显示您的数据。