Visual studio 2010 Crystal报表中的“组级总和”字段

Visual studio 2010 Crystal报表中的“组级总和”字段,visual-studio-2010,crystal-reports,grouping,Visual Studio 2010,Crystal Reports,Grouping,我正在尝试创建一个我觉得应该是非常简单的报告。我有一个与此类似的结果数据表: ID Amount ChildID Name Discount 1 200 1 Billy $10 1 200 2 Bobby $20 2 100 1 Kenny $10 我需要从组行级别的金额中减去折扣总额。最后,我需要总结这些金额。所以它看起来是这样的: I

我正在尝试创建一个我觉得应该是非常简单的报告。我有一个与此类似的结果数据表:

ID    Amount    ChildID     Name    Discount
1     200       1           Billy   $10
1     200       2           Bobby   $20
2     100       1           Kenny   $10
我需要从组行级别的金额中减去折扣总额。最后,我需要总结这些金额。所以它看起来是这样的:

ID: 1 Amount: $170
    Billy      $10
    Bobby      $20
ID: 2, Amount:$90
    Kenny      $10

Total:        $260

我创建了一个公式,用于从团体的金额中减去折扣总额。现在,如何在报表页脚中对这些值求和?

您需要通过全局变量跟踪正在运行的小计。这样的组页脚公式应该可以:

whileprintingrecords;
numbervar subtotal;

//Update subtotal with the group's amount minus the total discounts for that group
subtotal := subtotal + ({table.amount} - sum({table.discount},{table.ID}))

在报表页脚中,您现在可以自由使用变量的合计。

Crystal Reports没有一种简单的方法(或者根本没有办法,AFAIK)来预测并计算每个ID的折扣合计,然后从您的金额中减去。在我看来,您可能想要(1)计算每个分组的金额($170和$90),然后生成一个子报告来显示子项,或者(2)让SQL查询预先计算出金额,然后简单地显示该金额,而不是基本金额。希望有道理。谢谢。必须为每个组运行一个子报告,这将是非常低效的。因此,如果我预先计算170和90,我如何在页脚处求和。我试着把200和100相加,但总共得到了500,因为它把每一行相加。谢谢。我只是在努力理解语法。是否需要打印记录?表示如果包含一个组字段,则它在打印时已经进行了处理。令人惊讶的是,这不起作用。我在你写的时候试过了(除了我的实际列名),结果只输出了90美元。仅最后一行的值。是,需要打印记录。出于几个原因,您可能只得到公式的最后一个值。。。您是否将公式放在报告的组页脚中?您是否包含了公式的
小计+
部分?开枪。我把它放在报告的页脚,而不是组的页脚。非常感谢。那么在报表页脚中就没有办法得到这个数字了吗?是的,小计变量将包含这个值,所以您需要做的就是创建一个只返回该变量的公式,例如:
whileprinting records;数字小计