如何让我的 SSRS 报告中矩阵中的值重复?

How can I get the values in the Matrix on my SSRS report to repeat?

我知道一定有一个简单的答案,但我找不到。

我在 BIDS/SSRS 报告的矩阵中添加了几个文本框。我给了这些文本框值,例如:

=Fields!WEEK1USAGE.Value

它有效(在时尚之后);当我 运行 报告时(在“预览”选项卡上或在“报告服务器”站点上),我在报告上看到了第一个对应的数据值 - 但只有一个。

我认为一旦通过诸如“=Fields!WEEK1USAGE.Value”之类的表达式分配了一个值,每个值都会显示(行会自动添加).

在 Matrix 或文本框中一定有一些 属性 指定了它,但我看不出它可能是什么。

这是我的报告在“布局”窗格中的外观(到目前为止非常简约):

...在 运行ning 之后,在“预览”选项卡上:

显然,我希望报表根据需要显示尽可能多的行,而不仅仅是一行。文本框确实有 "RepeatWith" 属性,但描述听起来不对 interesting/useful/promising。

我也没有在 Matrix 控件上看到任何看起来正确的 属性。

我想也许设计者只显示了一行值,运行服务器上的报告也是,但那里也只显示了两个值。

那么我需要做什么才能获得所有所提供字段的数据?

矩阵用于显示分组数据和汇总信息,通常采用水平扩展的枢轴 table 类型的格式。矩阵真的是你想要的吗?查看您的表达式,您有 =Fields!Week1Usage.Value,但在矩阵中,我希望看到的至少是 =Sum(Fields!Week1Usage.Value),甚至更好的是 =Sum(Fields!Usage.Value)。然后,您会将 ProactDescription 作为您的行组,将周作为您的列组,它会为您计算出所有内容,按 Proact 垂直分组和求和,并水平扩展周。

似乎正在发生的事情是您没有对行或列进行分组,也没有聚合,因此它返回到默认显示,这实际上是 First 函数 - 它显示第一行数据就矩阵而言,它已经完成了它的工作,因为没有分组。

在不知道你的问题或数据的情况下,我将构建一个可能是你正在做的场景,并讨论矩阵如何完成繁重的工作来解决该问题。假设您有多个 Proacts 的使用数据。每次使用时,您都会记录使用量以及使用日期和时间。它可以每天使用多次,但肯定在一周内使用多次。因此,您可以像这样从 table 中获取每个 Proact 的使用时间:

SELECT ProactDescription, TimeUsed, Usage
FROM ProactUsage
ORDER BY ProactDescription, TimeUsed

在您的报告中,您希望显示每个 Proact 在数周内的每周总使用量。像这样:

Proact               Week1    Week2    Week3   ...
Description          Usage    Usage    Usage   ...
--------------------------------------------
Anise, Fennel 1 CT   20.00    22.50    16.35   ...
St John's Wort       15.20    33.90    28.25   ...
...

等等。使用基于上面 SQL 的数据集,我们创建一个矩阵,在行组属性中,我们对 =Fields!ProactDescription.Value 进行分组,在列组属性中,我们对 =DateDiff(DateInterval.Week, Fields!TimeUsed.Value, Today) 之类的周表达式进行分组,然后在行和列的交叉点,我们放置 =Sum(Fields!Usage.Value)。要很好地显示列的 header,请输入

之类的表达式
="Week " & DateDiff(DateInterval.Week, Fields!TimeUsed.Value, Today)

该矩阵会自动按周和产品进行所有汇总,并根据您报告的数量水平扩展周数。对于奖励积分,您还可以将总计放在列和行的末尾,以显示该时间段内该 Proact 的总使用量(行总计)和该周所有 Proact 的总使用量(列总计)。