2016-09-01 45 views
0

我有以下情形:存储过程作为数据源的单个.rdl文件。此存储过程接受两个参数:@ProcedureName nvarchar(max)@Parameters xml。存储过程的功能是使用给定的XML参数调用另一个存储过程(很可能在不同的数据库上)。所以,实质上,每个被执行的存储过程将返回它自己的数据集。如何在SSRS报告中实现动态数据集

我该如何创建一个tablix /矩阵,消耗数据集而不指定列,因为列需要在运行时生成?

回答

0

不幸的是,SSRS没有“AutoGenerateColumns”风格的功能,并在设计时解决了很多问题。所以简短的答案是你不能。

设计师在保存时检查字段引用,并且不会保存对不在数据集的字段列表中的字段的引用。如果在报告定义生成后某个字段不再存在,它将在报告中显示为静态空白值。表达式也会这样做,即使该字段处于未评估的部分。所以,如果场B被删除,这个表达式仍然会受到影响:

=IIF(1=1,Fields!A.Value,Fields!B.Value)

这意味着你不能使用条件分组表达式作为一种解决方法,即使你有列的详尽清单可能被退回。

+0

我最终为RDL文件动态生成XML标记,并为不同的数据集附带XSLT转换。所以基于返回的数据集,我设法创建了相关的tablix结构。但是,获取XML格式正确有点麻烦,因为我需要事先创建RDL文件以查看标记的样子(分组,特殊表达式等) –