1

我有一份年度报告,我希望将月份显示在 Jan-Dec 列中,即使是没有任何值的月份也是如此。

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

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

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

月 一月 二月 三月 四月 五月 六月 七月

轮子 0 0 0 0 10 65 75

汽车 0 10 0 10 0 100 175

4

2 回答 2

0

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

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

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

例如,如果您的报告只有月份,您可以创建一个包含 3 列、Year、Month 和 MonthNumber 的日历表。MonthNumber 对于在报告中对月份进行排序很重要,因为您不能按字母顺序排列月份。如果您只在报告中显示一个日历年,则可能不需要年份列,但您可以将其重复用于许多报告,因此值得正确执行。如果您想了解更多关于它们的信息,请查看“日历表”,关于如何创建它们有很多意见,但也许从一个简单的开始以熟悉这个想法。如果您离开将日历表加入您的月份数据,您将获得一月到四月的 NULL 值(因为您的数据从五月开始)并且您可能希望将这些 NULL 值替换为 0 或空字符串,取决于什么是合适的。在那里使用 isnull() 或 nvl() 或数据库中的任何适当函数可能是合适的。

于 2012-10-10T22:51:22.830 回答
0

我如何构建月份排序的答案是,我使用参数来构建特定列的月-年值,然后我使用该值与获取的月-年值进行比较。

在列 =Sum(Cint(IIF(Fields!startmonth.value=Cint(Parameters!year.Value & Parameters!jan.Value),Fields!money.Value,0)))

因此,来自提取的月-年值是通过一个计算字段建立的,例如 201302,然后将其与选定的 2013 年进行比较,并添加该特定列 02=201302 的月值。

于 2013-12-30T09:03:54.260 回答