我知道必须有一个简单的答案,但我无法找到它。
我在BIDS / SSRS报告中为Matrix添加了几个文本框。我已经给出了这些文本框值,例如:
=Fields!WEEK1USAGE.Value
它有效(经过时尚);当我运行报告时(在“预览”选项卡上或在报表服务器站点上),我在报表上看到了第一个相应的数据值 - 但只有一个。
我认为一旦通过诸如" = Fields!WEEK1USAGE.Value "等表达式分配了值,就会显示每个值(将自动添加行)
矩阵或文本框上必须有一些属性指定了这一属性,但我无法看到它可能是什么。
以下是我的报告在布局窗格中的外观(目前为止非常简约):
...运行后,在预览标签上:
显然,我希望报告根据需要显示尽可能多的行,而不仅仅是一行。文本框确实有一个" RepeatWith"财产,但说明并不有趣/有用/有希望。
我也看不到Matrix控件上看起来正确的任何属性。
我想也许设计师只显示了一行值,并在服务器上运行了报告,但它也显示了两个值。
那么我需要做些什么才能获得所有所提供字段的数据?
答案 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的总使用量(列总数)。