【问题标题】:Unable to sum grouped values correctly using RDLC无法使用 RDLC 正确汇总分组值
【发布时间】:2016-10-20 11:17:57
【问题描述】:

假设我的数据源是一个标准化数据表,其中每一行代表从这样的农田收获的一卡车谷物。

Field Acres Bushels
A     50    500
A     50    600
B     40    550
B     40    600
B     40    500
C     50    500
C     50    450

我希望我的 RDLC 报告提供以下信息摘要:

Field    Acres Total Bushels
A        50    1100
B        40    1650
C        50     950
Totals  140    3600

我尝试了几种不同的方法(在 Field 上分组,在 Field 和 Acres 上分组),但在每种情况下,我的三个田地的总英亩数都为 320。

我目前正在使用单一级别的分组,这些分组同时在 Field 和 Acres 上进行。然后我添加一个总行,我想在其中显示英亩的分组值的总和,但似乎我无法使用scoping 来完成此操作,因为它是从外部引用内部范围是非法的。具体来说,如果我尝试 Sum(Fields!Acres.Value, "Field") 会出错,因为农田上的分组整体总数分组中。

在 ReportItem 上使用聚合似乎也是非法的。也就是说,如果我将包含英亩的文本框命名为“txtAcres”,则在我的总计行中不允许使用表达式Sum(ReportItem!txtAcres.Value)

请注意:我相信任何涉及对 distinct 值求和的解决方案都会给出不正确的总英亩数 90(因为我们有两个正好是 50 英亩的田地)

【问题讨论】:

  • I've tried a couple of different approaches 你的帖子是展示你所尝试的正确的地方。
  • @Eser - 我以为我已经这样做了。我尝试的方法是在 ReportItem 上使用范围和聚合(即包含 Acres 的文本框)。我将编辑我的帖子以试图澄清......

标签: c# rdlc reportviewer


【解决方案1】:

我将此作为答案提交,但我认为这更像是一种解决方法。我仍然希望 RDLC 有一个干净的解决方案来解决这个常见且简单的问题。

我在名为 PartialAcres 的数据源中添加了另一列,其定义如下:

t.Acres * t.Bushels / (Select sum(Bushels) from Loads where Field = T.Field) 
as PartialAcres    

Field Acres Bushels PartialAcres
A     50    500     22.7272
A     50    600     27.2727
B     40    550     13.3333
B     40    600     14.5454
B     40    500     12.1212
C     50    500     26.3158
C     50    450     23.6842

现在我可以在任何级别的分组中使用表达式 Sum(Fields!PartialAcres.Value) 来获得正确的总英亩数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-27
    • 2020-09-06
    • 2018-03-17
    • 2021-05-12
    • 1970-01-01
    • 2020-12-20
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多