【发布时间】:2017-03-19 06:39:37
【问题描述】:
我是 Microsoft 报告方面的新手,需要一些帮助!这是上下文:
我们正在基于数据集格式化 rdlc 报告,并使用 reportViewer 对象将其显示在 aspx 页面中。我们需要在报告中包含调用另一个页面或 Web 服务的超链接(尚未确定)。超链接位于表格单元格内的特定类型的数据上,我们称它们为 ID。一个报告页面可以包含许多超链接,也可以不包含超链接,具体取决于获得的数据集。
到目前为止没有问题,但有一个问题:我们需要将一个 ID 列表传递给页面/Web 服务,该列表包含报告页面中的所有可用 ID。所以我需要一种方法来扫描格式化报告的页面以获取该 ID 列表。怎么样?
到目前为止,我尝试过:
- 在 aspx 中定义一个 javascript 函数,该函数将扫描报告 DOM 中的 ID,并在表格单元格的“转到 url”操作表达式中调用此函数。单击超链接时执行了javascript,但未找到aspx页面中定义的函数。
- 编写所有的javascript来扫描页面里面的“go to url”动作的表达,但是我意识到当我点击链接时,javascript是在一个空白页面中执行的,而不是在包含我的报告的页面中,所以我无权访问报告 html。
我想试试:
- 告诉客户这不是一个好主意:)
在aspx页面中定义一个javascript函数,当报表加载完成时执行。然后,此函数将扫描页面中的所有 ID,构建一个列表并将其分配给报告页面中每个链接中的参数。但是,我担心访问报告 DOM 时可能会遇到安全问题。
更仔细地查看报告属性中可用的 vba“自定义代码”部分。这似乎很有希望,但到目前为止,我看到的所有示例都使用来自单个数据集行的数据作为参数调用海关函数。我需要访问格式化页面中包含的所有数据集行。
- 更仔细地查看 .Net api,看看我是否可以了解数据集将如何分布在页面上,这样我就可以构建超链接并在发送到客户端之前替换它们。
我面临的问题实际上是“每页”问题。你这样做了吗?最好的方法是什么?
非常感谢!
编辑: 忘了提及所有报告在渲染之前对数据集执行倍数分组,因此我无法通过计算每页的 x 个元素来估计页面中呈现的数据。需要在数据集被rdlc咀嚼之后再做...
【问题讨论】:
标签: c# asp.net reporting-services rdlc reportviewer