7

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

4

3 回答 3

1

不幸的是,看起来没有简单的方法可以做到这一点。有关详细信息,请参阅http://www.jameskovacs.com/blog/DiggingDeepIntoReportingServices.aspx。如果您查看该帖子的评论,有一些方法可以解决这个问题,但它们不是很优雅。最简单的解决方案将要求您在报告代码中的某处有一个报告参数列表,这显然违反了DRY原则,但如果您想要最简单的解决方案,您可能只需要忍受它。

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

于 2008-09-17T19:44:23.363 回答
0

如果我理解您的问题,请按照我的操作:在报告上放置一个文本框,然后在设置报告时插入以下内容:="Parameter1: " + Parameters!Parameter.Label + ", Parameter2: " + 参数!Parameter2.Label...

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

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

于 2008-09-18T19:54:24.330 回答
0

我至少可以想到两种方法来做到这一点。第一个可能有效,第二个肯定有效。

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

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

如果您的应用程序没有对 RDL 文件的文件系统访问权限,您可以通过 Web 服务获取它们。

于 2008-09-21T23:45:23.630 回答