RDLC 报告 - 分组中的重复数据问题

RDLC report - Duplicate data issue in grouping

我有一个 RDLC 报告,我想在其中按用户名和状态进行分组,其值是打开和关闭。当用户名的两个状态值都存在时,我得到了重复的用户名。

在表达式中,我使用了以下代码 -

=IIf (
Fields!Status.Value.ToString().ToLower().Trim() = "open",
Count(Fields!Status.Value),
0 )

=IIf (
Fields!Status.Value.ToString().ToLower().Trim() = "closed",
Count(Fields!Status.Value),
0)

我的输出是这个 - Current Output

我想要这个输出 - Required Output

我会简单地使用矩阵而不是 table。

然后您可以按 Username 设置行组,按 Status 设置列组,然后值将简单地为 =CountRows()

因此,使用您的示例数据作为我的数据集查询。

declare @t table (UserName varchar(10), [Status] varchar(10))

INSERT INTO @t VALUES 
('User1', 'Closed'),
('User2', 'Closed'),
('User3', 'Closed'),
('User3', 'Closed'),
('User3', 'Closed'),
('User3', 'Closed'),
('User3', 'Closed'),
('User3', 'Closed'),
('User4', 'Closed'),
('User4', 'Closed'),
('User4', 'Closed'),
('User4', 'Open')

select * from @t

创建一个新报表并添加一个矩阵控件。

将字段拖动到相应的列和行 headers,如下所示。

接下来,将值单元格的表达式设置为 =CountRows()

这会给我们一个基本的矩阵输出。

接下来要添加总计...

在主设计下方的行和列组面板中 window,right-click 组,然后 select“添加总计”,然后“之后”,对两行重复此操作和列组。

再次将新单元格的表达式设置为 =CountRows()

最终设计如下。

(注意所有显示表达式的单元格都设置相同的 =CountRows() 表达式。)

最终输出看起来像这样(经过一些粗体和阴影处理)