SSRS 2008中的每月列来自Fetch XML

时间:2012-10-07 11:07:47

标签: reporting-services fetchxml

我有一份年度报告,我希望在1月至12月的列中显示月份,即使是没有任何价值的月份。

今天我有一个矩阵报告,从5月开始,因为该月是具有第一个值的月份。但是我希望表格从1月开始,即使那个月没有值。

我也想知道我是否可以在同一个矩阵中有多行但是有不同的数据源(XMLFetches)。

我会再解释一下。真的应该是一个相当简单的raport,我想要显示每月销售多少,每个月是一列,行是产品。
我在线使用CRM 2011的fetchXML。

月jan feb mar apr may jun jul

车轮0 0 0 0 10 65 75

汽车0 10 0 10 0 100 175

2 个答案:

答案 0 :(得分:0)

不可能在报表上的同一矩阵中组合不同的数据集,但是,在将数据集呈现给报表之前,您可以组合数据源以创建一个数据集。例如,您可以使用存储过程(或SSIS或powershell等)从数据库中读取并将数据组合到数据库中的表,临时表,表变量中,然后从报表中查询 - 或者在Fetch XML中查询/ p>

要获得显示日历条目的报告,即使对于没有数据的条目,您也需要从所需的日历开始,然后将其连接到实际数据。

如果您是从动态CRM执行此操作并且熟悉自己编辑FetchXML,那么您可以使用适当的方式连接来自多个实体的数据。关于堆栈溢出的另一篇文章详述了该技术:Left join in FetchXml?

例如,如果您的报告只有几个月,则可以创建一个包含3列(年,月和月)的日历表。 MonthNumber对于在报表中对月份进行排序很重要,因为您无法按字母顺序排序月份。如果您只在报表上显示一个日历年,则可能不需要年份列,但这可以用于许多报表,因此值得正确执行。如果你想了解更多关于它们的信息,请查看“日历表”,关于如何创建它们有很多意见,但也许从一个简单的开始,以便对这个想法感到满意。 如果您将日历表加入月份数据,您将获得1月到4月的NULL值(因为您的数据从5月开始),您可能希望将这些NULL值替换为0或空字符串,具体取决于是合适的。使用isnull()或nvl()或者数据库中的任何适当函数都适合。

答案 1 :(得分:0)

我如何在月份上构建排序的答案是我使用参数来构建特定列的月 - 年值,然后我将其用于与fetch中的月 - 年值进行比较。

在专栏中 = Sum(Cint(IIF(Fields!startmonth.value = Cint(参数!year.Value& Parameters!jan.Value),Fields!money.Value,0)))

因此,获取的月 - 年值是通过计算得到的字段来实现的。 201302然后将其与选定的2013年进行比较,并为该特定列02 = 201302添加月值。