如何将我的SSRS报告中的Matrix中的值重复?

时间:2016-01-21 18:05:19

标签: matrix reporting-services repeat bids

我知道必须有一个简单的答案,但我无法找到它。

我在BIDS / SSRS报告中为Matrix添加了几个文本框。我已经给出了这些文本框值,例如:

=Fields!WEEK1USAGE.Value

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

我认为一旦通过诸如" = Fields!WEEK1USAGE.Value "等表达式分配了值,就会显示每个值(将自动添加行)

矩阵或文本框上必须有一些属性指定了这一属性,但我无法看到它可能是什么。

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

enter image description here

...运行后,在预览标签上:

enter image description here

显然,我希望报告根据需要显示尽可能多的行,而不仅仅是一行。文本框确实有一个" RepeatWith"财产,但说明并不有趣/有用/有希望。

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

我想也许设计师只显示了一行值,并在服务器上运行了报告,但它也显示了两个值。

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

1 个答案:

答案 0 :(得分:1)

矩阵用于显示分组数据和摘要信息,通常采用水平扩展数据透视表格式。矩阵真的是你追求的吗?看看你的表达式,你有=Fields!Week1Usage.Value,但在矩阵中,我希望看到的内容至少为=Sum(Fields!Week1Usage.Value),甚至更好=Sum(Fields!Usage.Value)。那么你就可以将ProactDescription作为你的行组,将星期作为你的列组,它将为你完成所有工作,通过Proact垂直分组和求和并将周数水平扩展。

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

在不知道您的问题或数据的情况下,我将构建一个可能正在进行的场景,并讨论矩阵如何解决该问题。我们假设你有多个Proacts的使用数据。每次使用一个时,您都会记录使用量以及使用的日期和时间。它可以每天使用多次,但肯定会在一周内多次使用。因此,您可以从表格中获取每个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)的行和列。要显示列的标题,请使用

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

矩阵会自动按周和产品进行所有求和,并按照报告的数量水平扩展周数。对于奖励积分,您还可以在列和行的末尾放置总计,以显示该周期(行总数)中该Proact的总使用量以及该周中所有Proacts的总使用量(列总数)。