【问题标题】:Render SSRS .RDL to PDF and just open it将 SSRS .RDL 渲染为 PDF 并打开它
【发布时间】:2011-02-11 13:17:36
【问题描述】:

我尽量做到描述性最强。

好的,既然我以前从来没有做过这样的事情,我想最好在开始之前先问清楚,以免整个过程出错。

我们有一个必须从 ASP.NET 应用程序调用的报表,它可以是一个简单的按钮。通过代码隐藏,我必须传入一个参数,呈现报告,并且不要将其保存在任何地方,只需将其作为 .pdf 文件打开给用户,以便他可以保存或打印它。 所以请给我链接或提示,我正在阅读 MSDN 文档...

如果您对其他技术有任何建议,至于报告,我想听听,但必须从 ASP.NET 调用。

提前致谢!

编辑:


现在我已经完成了报告,我只需要知道调用它的最佳方法。 它不能直接从 URL 完成,因为这允许用户保存或关闭 pdf 文件,这不是我想要的。

我开始认为实现这一目标的最佳方法如下: 我以编程方式呈现 PDF,并在我的应用程序结构内的临时文件夹中创建 .PDF 文件,然后启动一个新线程来打开文件,并等待用户关闭它,当他关闭它时,我删除文件和线程已死。

你们怎么看?大家有更好的选择吗?

【问题讨论】:

    标签: .net asp.net vb.net pdf-generation reporting-services


    【解决方案1】:

    好吧,如果报表在报表服务器上,最简单的方法可能就是将用户发送到将根据需要生成报表的 URL。在浏览器地址栏中尝试这样的操作,看看我的意思:

    http://SERVER_NAME/ReportServer/Pages/ReportViewer.aspx?%2fFOLDER_NAME%2fREPORT_NAME&rs:Command=Render&rs:Format=PDF&PARAMETER_NAME=VALUE
    

    请参阅this knowledge base article on Report Server URLs 了解更多详情。 编辑:开始 here on MSDN 可能会有所帮助。

    【讨论】:

    • +1 是最好的选择 - 只需在查询字符串的报告参数中指定报告输出格式。
    • 这将允许用户保存或打开报告。但我想自动打开它,而不是让用户这样做。
    【解决方案2】:

    如果你检查编辑历史,你会发现我完全改变了这一点。

    再次回答我自己的问题:

    我认为最好的方法是:

    • 在 SQL Reporting Services 报表服务器中拥有报表;
    • 通过用 .NET 编写的代码呈现它,并捕获一个字节数组作为响应;
    • 将字节数组写入 Response.OutputStream;
    • 添加附件标题,以便用户可以下载文件;

    如果有人必须这样做,希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      • 2014-12-16
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多