SSRS:我可以用ReportItems创建一个图表吗?

时间:2016-05-13 22:06:22

标签: sql-server reporting-services ssrs-2012

我在SSRS工作,我有一个计算,它在两个其他单元格引用之间创建一个百分比差异(它们本身是从我编写的存储过程生成的)。

=Format((ReportItems!CCM01.Value-ReportItems!PCM01.Value)/ReportItems!PCM01.Value,"P1")

事实上,我有12个(因为这个报告是为期12个月的滚动),CCM01-12和PCM01-12。

有没有办法使用这些计算单元格生成图表?或者使用一系列公式生成图表的方法?或者我将不得不回到存储过程并编写一个公式来生成DataSet中的项目,然后我将用它来填充图表?

1 个答案:

答案 0 :(得分:2)

我认为你不能,因为它会报告关于报表项表达式的错误,只允许同一分组范围内的报表项。无论如何,有更好的方法来实现这一目标。

首先,你不想这样做:

=Format((ReportItems!CCM01.Value-ReportItems!PCM01.Value)/ReportItems!PCM01.Value,"P1")

因为这将返回一个字符串,这个字符串很难进行计算而不会返回到double。所以你的表达应该是:

=(ReportItems!CCM01.Value-ReportItems!PCM01.Value)/ReportItems!PCM01.Value

并将格式放入Format属性;将其设置为P1

但实际上,在字段上计算比报告项更容易:

=(Fields!CCM01.Value-Fields!PCM01.Value)/Fields!PCM01.Value

我们可以通过将这些表达式添加到数据集字段集合来创建数据集的一部分。因此,您将根据上面的计算生成12个计算字段(右键单击数据集,添加计算字段),然后将这些PCD01称为PCD12

现在这些字段位于数据集中,它们很容易添加到表中,我们可以对它们进行绘制。理想情况下,我们会对数据进行取消,因此不是使用一行中三个数据点中的每一个的12列,而是使用三个数据点和12行 - 那么您的表格和图表将非常简单,您只需要一个计算字段。但是,让我们继续我们拥有的东西。

在报告中添加图表。在“图表数据”面板的顶部Ʃ Values,按+号并将PCD01中的每一个添加到PCD12