5

考虑以下数据源:

declare @Test table (EmpId int, ProdId int, Sold int)
insert @Test (EmpId, ProdId, Sold) values (1, 1, 1)
insert @Test (EmpId, ProdId, Sold) values (1, 2, 2)
insert @Test (EmpId, ProdId, Sold) values (1, 3, 3)
insert @Test (EmpId, ProdId, Sold) values (1, 4, 4)
insert @Test (EmpId, ProdId, Sold) values (2, 1, 5)
insert @Test (EmpId, ProdId, Sold) values (2, 2, 6)
insert @Test (EmpId, ProdId, Sold) values (2, 3, 7)
insert @Test (EmpId, ProdId, Sold) values (2, 4, 8)
select * from @Test

我创建了一个 Sql Server Reporting Services (SSRS) 2008 R2 报告,其中包含一个配置如下的矩阵:

|         | [ProdId]    |
| [EmpId] | [Sum(Sold)] |

在预览模式下,呈现为以下内容(如预期的那样):

|   | 1 | 2 | 3 | 4 |
| 1 | 1 | 2 | 3 | 4 |
| 2 | 5 | 6 | 7 | 8 |

但是当我将它导出到 CSV 时,我得到了这个:

| EmpId | ProdId | Sold |
| 1     | 1      | 1    |
| 1     | 2      | 2    |
| 1     | 3      | 3    |
| 1     | 4      | 4    |
| 2     | 1      | 5    |
| 2     | 2      | 6    |
| 2     | 3      | 7    |
| 2     | 4      | 8    |

换句话说,当我导出到 CSV 时,我会丢失矩阵布局,并且每行数据都会呈现为单行 CSV。请注意,如果我导出到 Excel,报告会按预期工作,所以到目前为止,这个问题似乎仅限于 CSV。我尝试将矩阵重组为表中的表,但这也不能解决它。有什么建议么?

4

3 回答 3

4

这是 SSRS 2005 和 SSRS 2008 之间报告呈现的重大变化的一部分。

我发现的唯一解决方案是:

  1. 导出到 Excel,然后将 Excel 文档另存为 CSV - 这会使 Excel 格式变平,并且需要设置分组,以便每一行重复父组的值。但是,首先导出到 Excel 存在问题,例如,如果连续行包含相同的数据,渲染器有时会忽略数据,可以通过将受影响列的“DataElementOutput”设置为 True 而不是“ Auto' 允许渲染器猜测您可能认为重要的字段。

  2. 将您的报告构建为一个平面表- 这几乎违背了制作矩阵的目的,并且很痛苦,但是您可以提前定义列,并且可以在查询中动态地这样做或使用大量文本框值中的表达式并在列上设置动态可见性。但要实现这一点,可能需要创建数十个或数百个列来处理特定值的潜在外观。

  3. 不要升级到 2008 - 如果矩阵报告和导出格式对业务至关重要,那么在 2008 中确实没有重新创建功能的好方法,坚持使用 2005 SSRS 是获得旧版本的唯一可靠方法渲染。

资源

于 2011-07-06T16:46:05.760 回答
1

这是一个解决方法:

  • 将 CSV 输出的源切换为一个额外的 tablix,它按原样显示所有数据。
  • 禁用原始 tablix 输出到 CSV(Tablix > Properties > DataElementOutput > NoOutput)。
  • 隐藏额外的 tablix,使其不显示。(Tablix > 右键单击​​ > Tablix 属性 > 可见性 > 隐藏)。

这样您就可以完全控制屏幕显示和 CSV 输出。

于 2018-10-03T16:44:45.463 回答
0

有时适用于 SSRS 2016:

  1. 选择缺少的列
  2. 打开属性
  3. 仅更改数据 --> DataElementOutput 作为输出
  4. 此操作在哪里起作用会有所不同。例如,当我在 Tablix 上执行此操作时,它不起作用,但当我在列上执行此操作时,它起作用了。您可以尝试创建一个表来测试这之后是否效果更好。不幸的是,您不能在页脚上制作表格,这将特别有用。
于 2020-10-01T12:40:40.000 回答