Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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
Sql server 2005 SSRS 2005-报告参数循环_Sql Server 2005_Reporting Services_Parameters - Fatal编程技术网

Sql server 2005 SSRS 2005-报告参数循环

Sql server 2005 SSRS 2005-报告参数循环,sql-server-2005,reporting-services,parameters,Sql Server 2005,Reporting Services,Parameters,我希望能够循环查看报告中所有已定义的参数,并构建参数名称和值的显示字符串。然后,我会在报告中显示结果,以便用户知道哪些参数用于特定的执行。唯一的问题是我无法循环遍历参数集合。Parameters集合上似乎没有索引器,也没有实现IEnumerable。有人能做到这一点吗?我使用的是SSRS2005,它必须在报告代码中实现(即,没有外部程序集)。谢谢 不幸的是,似乎没有简单的方法可以做到这一点。 有关更多信息,请参阅。如果你看一下,有一些方法可以绕过这一点,但它们不是很优雅。最简单的解决方案要求您在

我希望能够循环查看报告中所有已定义的参数,并构建参数名称和值的显示字符串。然后,我会在报告中显示结果,以便用户知道哪些参数用于特定的执行。唯一的问题是我无法循环遍历参数集合。Parameters集合上似乎没有索引器,也没有实现IEnumerable。有人能做到这一点吗?我使用的是SSRS2005,它必须在报告代码中实现(即,没有外部程序集)。谢谢

不幸的是,似乎没有简单的方法可以做到这一点。 有关更多信息,请参阅。如果你看一下,有一些方法可以绕过这一点,但它们不是很优雅。最简单的解决方案要求您在报表代码中的某个地方有一个报表参数列表,这显然违反了原则,但如果您想要最简单的解决方案,您可能不得不接受它


您可能需要重新考虑无外部程序集的约束,因为在我看来,使用外部程序集执行此操作要容易得多。或者,如果您的报告不会有太大变化,您可以手动创建参数名称和值的列表。

如果我理解您的问题,请执行我的操作: 在报告上放置一个文本框,然后在设置报告时插入以下内容: =“参数1:”+参数!Parameter.Label+”,Parameter2:“+参数!参数2.标签

当然,这不是最漂亮的东西,但它在我们的应用程序中运行得非常好


我使用标签而不是值,因为我们有datetime值,用户只关心短日期或月份和年份(取决于具体情况),我已经在设置参数时完成了格式化工作。

我至少可以想出两种方法。第一种可能有效,第二种肯定有效

  • 使用web服务。我很确定我看到了获取参数集合的API。即使没有直接访问,您也可以始终创建一个标准集合,并在foreach循环中将ReportParameter对象从一个复制到另一个,然后访问计数,通过取消引用ReportParameter实例可以使用单个参数属性

  • 报告是RDL。RDL是XML。创建一个XmlDocument并加载RDL文件,然后使用DOM做任何您喜欢做的事情,包括设置默认值,甚至重写连接字符串


  • 如果你的应用程序无法通过文件系统访问RDL文件,你可以通过web服务获取这些文件。

    我没有意识到他在报告中的意思。我将使用反射来查看Microsoft.ReportingServices.ReportProcessing.ReportObjectModel.Parameters内部,看看是否可以将其转换为更易访问的内容。