javascript - SSRS 从标准的内置界面自动导出为 PDF

标签 javascript reporting-services ssrs-2008-r2

我们的组织有许多从 SSRS 的内置界面运行的自定义 SSRS 报告 - 用户可以在其中查看和设置参数,然后单击“查看报告”以生成默认的 HTML 呈现。然后会出现小工具栏,允许他们将报告导出为 PDF、Excel 等格式。

我知道很多组织都写了自己的报表生成接口(interface),然后将参数传递给SSRS,并以需要的格式返返回表。在我们探索这条路线之前,我们想看看我们可以通过“破解”内置界面来做什么。

坚持使用 SSRS 内置界面的优势在于,我们可以编写具有参数的报告,这些参数的值/选择是根据先前选择的参数生成的。例如,如果我有两个报告参数 - “学年”和“学校名称”,我可以根据用户为“学年”的第一个参数选择的内容来更改“学校名称”的下拉选择列表;我可以在 SSRS 内部执行此操作,而无需雇用程序员来编写自定义报告选择/生成界面的代码。

但我不能做的是在用户选择参数并单击“查看报告”后自动从标准界面将报告导出为 PDF。但是我今天看到的一些帖子让我相信我们可以通过编辑 SSRS 服务器上的“ReportViewer.apsx”文件来破解标准 SSRS 界面。

Click here有关破解此文件以向“查看报告”按钮添加额外功能的示例。

所以,你们这些 JavaScript 高手,你们能想出一种方法来破解 SSRS 的内置“查看报告”按钮,以便提交参数并自动返回 PDF 格式的报告吗? (如果 jQuery 有帮助,我们可以为它添加一个引用)。

最佳答案

我接下来要对你说的肯定不是你想要的答案,但我想这可能是你需要听到的答案。出于多种原因,您要求某人帮助您做的事情确实不是最佳做法。这里有一些:

  1. 如果您找到一种方法来调整 SSRS 配置和源文件(例如,ReportViewer.aspx),这样的更改将改变任何和所有 生成关于整个报表服务器的报表。例如,您永远无法使用 SSRS 接口(interface)生成具有动态参数的 MHTML 格式的报告。

  2. ReportViewer.aspx 页面当前未设置为显示 PDF。要获取 PDF,您必须使用 SSRS 工具栏中的导出功能或使用 rs:Format 参数,两者都将下载 PDF 报告。

  3. 您说您不想雇用程序员来构建自定义界面,但您反而想做的是破解 SSRS 应用程序的核心文件。如果您没有开发人员来维护更改和处理出现的任何意外问题,这似乎是一个相当糟糕的做法。

我猜此时我已经引起了您的注意,或者您已经否决了我的回答,所以这里有一些不需要破解 SSRS 的替代解决方案。

向用户提供以所需格式打开报告的链接 完全有可能构建利用 SSRS 参数的报告,并为用户提供链接,这些链接将生成任何指定格式的文件,只需单击一个链接即可。例如,我们所有的仪表板都有一个“打印此页”链接,该链接生成一个 PDF,其中包含所有传递的相关报告参数。

一个具体示例:我们为员工提供了仪表板,它会根据某些业务需要显示前 X 条记录,然后在该部分的底部提供指向报告的链接,该报告包含可打印格式的 PDF 格式的所有记录。 PDF 将已在仪表板上输入的任何参数值带入 PDF 报告,简化了用户体验。

此外,您可以构建和自定义我称之为“门户报告”的内容,以便从最少量的数据中加载,从而最大限度地缩短加载时间。对我来说,“门户报告”根据上游报告的参数值或门户报告中的报告参数为用户提供少量相关信息。然后,提供链接以允许用户以他们需要的任何格式生成包含一组特定数据的文件。下面是一个简化示例的屏幕截图,我曾经为我的老板制作过一些东西。它读取当前系统时间,并通过单击按钮以所需或想要的格式生成不同的报告。信不信由你,您在下面看到的页面以及通过链接生成的所有数据集都是一份报告的一部分。

Using links to control render format

此外,您可以通过控制用户看到的 SSRS 工具栏选项来控制用户导出的文件类型。您可以更改默认样式表或使用 rc:StyleSheet 提供您自己的自定义样式表以禁用打印按钮(现在很少使用)或 SSRS 工具栏的导出或查找功能。这是一个 technet有关如何完成此操作的链接。

最后,如果您拥有 JavaScript 知识和一些 vb.net 或 c#.net 专业知识,您可以使用一个网页来处理特殊情况,该网页从您的系统中查询最少量的数据,然后为用户提供下拉菜单通过链接生成您想要的任何格式的报告。这些面向项目的一次性网页比完全灵活的 .NET SSRS 界面更容易构建。

如果您对我的任何陈述有任何疑问,请通过评论回复。我会尽力回答您的问题。

关于javascript - SSRS 从标准的内置界面自动导出为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36902476/

相关文章:

javascript - 如何在 Wordpress 中自定义选项卡?

javascript - 12 个簇,12 个不同的图标,使用 JavaScript 的 Leaflet 库

reporting-services - SSRS 中的 DB2 数据源

c# - 如何在没有 SSRS 服务器的情况下使用 Report Viewer 控件执行 .rdl 报告?

reporting-services - SSRS 矩阵中需要换行

javascript - 在 Javascript 中调整模式窗口的大小

javascript - 将嵌套映射值添加到 firestore

sql-server - 我在 SSRS 中有一个 DD-MM-YYYY 格式的日期时间参数如何将日期时间参数的格式更改为 DD-MMM-YYYY

reporting-services - SSRS中Tablix列的动态宽度调整

ssrs-2008-r2 - 根据第二个数据集的值在 SSRS 中设置条件格式