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

有帮助吗?

解决方案

不幸的是,似乎没有简单的方法可以做到这一点。看 http://www.jameskovacs.com/blog/DiggingDeepIntoReportingServices.aspx 了解更多信息。如果你看一下 该帖子的评论, ,有一些方法可以解决这个问题,但它们不是很优雅。最简单的解决方案将要求您在报告代码中的某个位置提供报告参数列表,这显然违反了 干燥 原则,但如果您想要最简单的解决方案,您可能只能忍受这一点。

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

其他提示

如果我理解你的问题,就做我所做的:在报告上拖放一个文本框,然后在设置报告时插入以下内容:=“参数1:“+参数!参数.标签+”,参数2:" + 参数!参数2.标签...

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

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

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

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

  2. 报告为 RDL。RDL 是 XML。创建一个 XmlDocument 并加载 RDL 文件,然后使用 DOM 执行以下操作: 你喜欢的都可以 最多包括设置默认值,甚至重写连接字符串。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top