Crystal reports 当打印记录不起作用时
我有一份报告正在手动进行运行总计,即:Crystal reports 当打印记录不起作用时,crystal-reports,Crystal Reports,我有一份报告正在手动进行运行总计,即: shared numbervar Amount:={#Amount}; shared numbervar TotalAmount:=Amount+TotalAmount; Amount; 然后,我有一个单独的公式,试图通过将金额除以总金额来计算平均值: whileprintingrecords; shared numbervar TotalAmount; if {@Amount}<>0 then {@Amount}/TotalAmount;
shared numbervar Amount:={#Amount};
shared numbervar TotalAmount:=Amount+TotalAmount;
Amount;
然后,我有一个单独的公式,试图通过将金额除以总金额来计算平均值:
whileprintingrecords;
shared numbervar TotalAmount;
if {@Amount}<>0
then
{@Amount}/TotalAmount;
相反,报告最终看起来像:
Amount | %
$100 | 100%
$50 | 33%
$50 | 25%
____
$200
为什么计算不进行到下一个公式中,可能会有很多问题
外,还可以尝试使用EvaluateAfter
打印记录时;
评价者(@Formula1);
共享号码或总金额;
如果{@Amount}0
然后
{@Amount}/TotalAmount代码>
编辑---------------------------------------------------------------------------------------------
你们这里的问题是,在每一个层次上,它都是以总量而不是最终值为基础的。就像第一个记录值是100
和@金额是100
。现在100/100是100%,现在第二个记录值是50
,@金额是150
,所以%是50/150,它是33.33
。最好的选择是使用子报表并将最终值200
作为子报表的输入值传递给子报表,并在子报表中显示您的数据。很难理解您要做什么。您将这些公式具体放在报告中的什么位置?放置它们的位置非常重要,因为crystal将以这种方式更新变量。您是否可以添加一些示例数据以及您正在尝试执行的操作?使用EvaluateAfter(@Formula1)会得到相同的结果。在最终的总数之后,它仍然没有实际评估它。
Amount | %
$100 | 100%
$50 | 33%
$50 | 25%
____
$200