微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在RDLC中仅对来自合并数据的重复值之一求和

如何解决如何在RDLC中仅对来自合并数据的重复值之一求和

我不确定SSRS是不是很傻,还是我(我倾向于两者)。

我有一个数据集(由于联接等的结果),有些列的每一行都重复相同的值(相当标准的数据库内容):

rid    cnt    bid   flg1   flg2
-------------------------------
4      2882   1     17     3
5      2784   1     17     3
6      1293   1     17     3
18     9288   2     4      9
20     762    2     4      9

基于cnt的报告非常简单。我还可以制作一个显示以下内容的Tablix:

bid    flg1   flg2
------------------
1      17     3
2      4      9

(其中Tablix按Fields!bid.Value分组并且列分别仅为Fields!flg1.ValueFields!flg2.Value。)

我不知道如何显示这些值的总和-特别是我想显示flg1的总和为21而flg2的总和为12-不是数据集中每一行的总和(对每个值进行多次计数)。

(请注意,我并不是要查找不同值的总和,因为它们可能不是唯一的。我希望每个bid组中一个值的总和,因为它来自表联接,因此它们将始终具有相同的值。)

如果可能的话,我也希望能够在报告的顶层进行类似的计算(不在任何列表中);尽管如果那是唯一的方法,我会选择隐藏详细信息行。

很显然,Sum(Fields!flg1.Value)不是答案,因为它要么返回51(如果在组内的第一行),要么返回59(如果在组外)。 我也尝试过Sum(Fields!flg1.Value,"bid"),但这不是有效范围。 我也尝试过Sum(First(Fields!flg1.Value,"bid")),但显然出于某些奇怪的原因,您不允许对第一个值求和(无论如何也可能遇到相同的范围问题)。

使用Sum(Max(Fields!flg1.Value,"bid")) 有用,但是感觉不对。有更好的方法吗?

(相关:是否有一种好的方法来保存那个计算的结果,以便以后我也可以显示这些总数的总和而又没有更毛茸茸的表情?)

解决方法

有两种基本方法。

  1. 执行已完成的操作(Sum(Max(Fields!flg1.Value,"bid"))

  2. 求和渲染值。为此,请检查包含所需数据的单元格的名称(检查其属性),然后使用类似=SUM(ReportItems!flg1.Value)的名称,其中flg1是文本框的名称,不一定总是相同的名称作为字段。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。