相关疑难解决方法(0)

如何在不丢失结构的情况下将 SSRS 矩阵导出为 CSV?

考虑以下数据源:

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, …
Run Code Online (Sandbox Code Playgroud)

csv export ssrs-2008 ssrs-tablix

5
推荐指数
1
解决办法
5341
查看次数

强制SSRS 2008使用SSRS 2005 CSV呈现

我们正在将报表服务器从SSRS 2005升级到SSRS 2008 R2。
我对SSRS 2008的CSV导出渲染有一个问题,其中列的SUM出现在2008年的明细值的右侧,而不是像2005年那样显示在左侧,如下图所示。
117131分别是Column2和Column3的总和。

SSRS 2005 CSV输出

Column2_1,Column3_1,Column2,Column3
117,131,1,2
117,131,1,2
117,131,60,23
117,131,30,15
117,131,25,89
Run Code Online (Sandbox Code Playgroud)

SSRS 2008 CSV输出

Column2,Column3,Column2_1,Column3_1
1,2,117,131
1,2,117,131
60,23,117,131
30,15,117,131
25,89,117,131
Run Code Online (Sandbox Code Playgroud)

我知道CSV渲染器在SSRS 2008 R2中进行了重大更改,并支持图表和仪表,更重要的是它提供了2种模式:默认Excel模式和Compliant模式。但是两种模式都无法解决此问题。合规模式本来应该与2005年最接近,但是显然对于我的情况来说还不够。

我的问题:
是否有一种方法可以强制SSRS 2008将报告回退到向后兼容模式,以便将其导出为2005 CSV格式?

尝试过的解决方案:
a)使用基于2005的CRI
基于本文在ExecutionLog2上的内容,如果SSRS 2008 R2遇到无法自动升级的报告(例如,使用基于2005的CustomReportItem控件构建的报告),则这些特定报告将为使用旧的Yukon引擎以“透明的向后兼容模式”进行处理。

似乎它回到了先前的版本模式(2005)并尝试呈现它。因此,我尝试使用基于2005的条形码CustomReportItem并将其部署到SSRS 2008 R2报表服务器,但是它显示了与以前相同的结果,尽管它抑制了条形码。这是因为SSRS 2008 R2找到了一种抑制部分报告输出并显示其余部分的方法。很高兴找到一个基于2005的CRI,它使SSRS 2008 R2使用其旧的Yukon引擎对其进行处理。请注意,即使它使用“旧的Yukon处理引擎”,也很有可能仍使用新的CSV渲染器,因此它显示相同的输出。如果是这样,那么这个选项就没有意义了。

b)使用XML渲染器
我们可以使用自定义XML渲染器,然后使用XSLT将xml转换为适当的CSV,但这意味着我们需要转换所有200个报告。因此,这是不可行的。

请注意,我们不能选择同时部署SSRS 2005和SSRS 2008 R2。

reportingservices-2005 reporting-services ssrs-2008 export-to-csv ssrs-2008-r2

3
推荐指数
1
解决办法
4176
查看次数