Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamic 动态SSRS报告_Dynamic_Reporting Services - Fatal编程技术网

Dynamic 动态SSRS报告

Dynamic 动态SSRS报告,dynamic,reporting-services,Dynamic,Reporting Services,我在SSRS中创建动态报告时遇到问题。我的问题是: 在一个表中,我将SQL脚本与列SQLScripts一起存储。如果执行这些SQL脚本,则每个脚本的列数不同 我的问题是,我有一个带有这些脚本按钮的报告,例如test1、test2……诸如此类。如果您按下test1按钮,则应测试一个SQL脚本,并应在该SQL脚本中显示具有适当列的报告 我不能为每个测试报告创建单独的报告,它们非常多。我有什么办法可以解决这个问题吗…我还没有找到一种完全动态解决这个问题的方法。下面是一个类似的问题,以及一些可能的解决方

我在SSRS中创建动态报告时遇到问题。我的问题是:

在一个表中,我将SQL脚本与列SQLScripts一起存储。如果执行这些SQL脚本,则每个脚本的列数不同

我的问题是,我有一个带有这些脚本按钮的报告,例如test1、test2……诸如此类。如果您按下test1按钮,则应测试一个SQL脚本,并应在该SQL脚本中显示具有适当列的报告


我不能为每个测试报告创建单独的报告,它们非常多。我有什么办法可以解决这个问题吗…

我还没有找到一种完全动态解决这个问题的方法。下面是一个类似的问题,以及一些可能的解决方案:

迄今为止,我唯一能让这项工作成功的方法是:

每个报告有2个数据集

  • 报告数据
  • 数据头
  • “DataHeaders”需要有“ReportData”中数据字段的正确名称。小心,因为SSRS将空格和特殊字符替换为“\ux”

    现在,创建一个表(或矩阵)并拖动DataHeader作为报告的列。(这应该是一个分组列)。如果在此时运行它,您将看到所有列,而没有任何数据。现在,魔法来了:

    创建另一个采用“DataField”参数的报告。在此报表中创建另一个表或矩阵,并将其dataset属性设置为“ReportData”。在表的数据单元格中,将其设置为表达式=Fields(Parameters!DataField.Value).Value

    现在回到你的第一份报告。右键单击并插入子报表。右键单击子报表并选择“子报表属性”。在“常规”下,选择要用作子报告的创建的第二个报告。在parameters下,选择DataField参数并将其值设置为类似于=Fields!数据字段.值

    在我的例子中,我在这个表达式中做了一些格式化,用空格和特殊字符修复了上面提到的问题,因为我的存储过程最初是在ASP.NET中使用的,这只是一个概念证明


    根据我的经验,表演也不是很好。事实上,它有点慢,尽管我还没有机会将其切换到使用共享数据集,我怀疑这会有所帮助。如果您找到更好的解决方案,请告诉我。

    您基本上需要首先从基于大量SQL脚本的其他数据集创建“主数据集”。主数据集应包含以最简单的形式显示的数据,即以简单的列表格式。
    最后,转到SSRS中的工具栏,将“矩阵”拖到报告中。矩阵表的作用类似于Excel中的透视表或Access中的交叉表查询,它将显示数据集中的任何内容

    下面是Buddy Lee建议的逐步解决方案。