Javascript SSRS从标准内置界面自动导出为PDF

Javascript SSRS从标准内置界面自动导出为PDF,javascript,reporting-services,ssrs-2008-r2,Javascript,Reporting Services,Ssrs 2008 R2,我们的组织有许多自定义SSRS报告,我们从SSRS的内置界面运行这些报告,用户可以在其中查看和设置参数,然后单击“查看报告”生成默认的HTML呈现。然后出现小工具栏,允许他们将报告导出为PDF、Excel等 我知道许多组织编写自己的报告生成接口,然后将参数传递给SSR,并以所需格式返回报告。在探索这条路线之前,我们想看看通过“黑客”内置接口可以做些什么 坚持使用SSRS内置接口的优点是,我们可以编写包含参数的报告,这些参数的值/选择取决于先前选择的参数。例如,如果我有两个报告参数-“学年”和“学

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

我知道许多组织编写自己的报告生成接口,然后将参数传递给SSR,并以所需格式返回报告。在探索这条路线之前,我们想看看通过“黑客”内置接口可以做些什么

坚持使用SSRS内置接口的优点是,我们可以编写包含参数的报告,这些参数的值/选择取决于先前选择的参数。例如,如果我有两个报告参数-“学年”和“学校名称”,我可以根据用户为“学年”的第一个参数选择的内容更改“学校名称”的下拉选择列表;我可以在SSRS内部完成这项工作,而无需雇佣程序员编写自定义报告选择/生成界面

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

以黑客攻击此文件为例,向“查看报告”按钮添加额外功能


那么,所有的javascript大师们,你们能想出一种方法来破解SSRS内置的“查看报告”按钮,从而提交参数并自动返回PDF格式的报告吗?(如果jQuery有帮助的话,我们可以为它添加一个参考)。

我要说的肯定不是你想要的答案,但我认为这可能是你需要听到的答案。出于许多原因,你请求别人帮助你做的事情并不是最好的做法。以下是一些:

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

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

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

  • 我猜在这一点上,我已经引起了你们的注意,或者你们已经否决了我的答案,所以这里有一些不需要黑客SSR的替代解决方案

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

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

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

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

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


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

    您的web平台是什么?我假设SSRS在Microsoft IIS上运行其内置接口。因为有.aspx文件和所有这些。谢谢你的回答。这很有帮助。我正试着把我的思想集中在这个概念上。IIUC,我可以在我的报告中预先构建并包含链接