17

我们在网站上使用了许多报告。在将一些报告导出为 PDF 时,文件会变得很大,并且服务器会因负载而崩溃。因此,如果我可以仅为某些有问题的报告禁用导出到 PDF 选项,那就太好了。

那么有没有办法在报表查看器 9.0 (SSRS) 中为单个报表禁用某些导出选项(例如:导出为 PDF)?

谢谢你。

4

8 回答 8

9

以防万一在此之前或在链接的文章中没有其他人大声说出来:

最简洁的全局解决方案是在 RS 配置文件中找到渲染引擎(我的位于:C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config),转到 xml 键:Extensions >在您要隐藏的每个条目的末尾呈现并插入以下属性:

可见=“假”

例子:

<Extension Name="XML" Type="Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRendering" Visible="false" />

或者将<!---->(HTML 注释标记)放在条目的开头和结尾。

对于个人报告,这些功能可以解决问题。

于 2016-06-15T13:44:53.213 回答
4

您可以在报表查看器中使用 Pre_render 事件。

  protected void ReportViewer1_PreRender(object sender, EventArgs e)
        {
            DisableUnwantedExportFormat((ReportViewer)sender, "Excel");
            DisableUnwantedExportFormat((ReportViewer)sender, "Word");
        } 

看看这个帖子

示例 删除 SSRS 中的另存为

于 2014-01-22T08:14:48.450 回答
2

您可以在此处的特定配置文件中全局隐藏 PDF 按钮:

“InstallPath\Reporting Services\ReportServer\rsreportserver.config”

有关更多信息,StackOverflow 上已经有一个关于此的主题。

请在此处查看更多答案:ReportViewer - 隐藏 PDF 导出

于 2013-04-05T11:07:02.320 回答
1

我的解决方案

$(document).ready(function() {
        var sel = $("select#ReportViewer2_ctl01_ctl05_ctl00");
        sel.find("option[value='XML']").remove();
        sel.find("option[value='CSV']").remove();
        sel.find("option[value='IMAGE']").remove();
        sel.find("option[value='MHTML']").remove();
        sel.find("option[value='PDF']").remove();
        sel.find("option[value='EXCEL']").remove();
});
于 2013-11-26T13:26:12.667 回答
0

这解决了问题(部分为我们):

http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/0c680c69-9f7d-42aa-a6b4-b1178eab8adf

于 2013-04-09T14:58:13.337 回答
0

我正在使用 MvcReportViewer 库在我们的 MVC 应用程序中获取 SSRS 的报表查看器。该库不支持用户控制生命周期事件,因此我无法使用 shamcs 提供的 PreRender 方法。Ristanovic Marko 描述的 Javascript 方法部分有效,但选择器不适用于我们使用的 SSRS 版本,它需要在 IFrame 中加载 JQuery,并且它没有描述仅针对特定报告执行此操作的方法。这是我想出的:

在我的 ReportViewer 部分中,我添加了以下脚本块:

var frame = $('#reportframe');
var src = frame.attr('src');
frame.attr('src', src + '?showAdditionalExports=' + @ViewBag.ShowExportsAttribute);

在 ReportViewerWebForm.aspx 中,我添加了另一个脚本块:

var urlParams = new URLSearchParams(location.search);
if (urlParams.get('showAdditionalExports') === 'true') {
    document.addEventListener("DOMContentLoaded",
        function() {
            ['Word', 'Excel'].map(function(title) {
                var menuItem = document.querySelector("#ReportViewer1 a[title='" + title + "']")
                    .parentNode;
                menuItem.parentNode
                    .removeChild(menuItem);
            });
        });
    }
于 2017-08-03T15:30:31.323 回答
0

您可以在该保存按钮上使用 div 并设置其属性,如下所示

<div style="
    background-color: white;
    z-index: 100;
    height: 61px;
    position: absolute;
    padding-left: 500;
    padding-left: 36px;
    margin-left: 370px;
    opacity: 0.5;
"></div> 
于 2018-10-16T06:28:08.930 回答
-1

这个问题并不新鲜,但也许对于其他有同样问题的人来说,我的回答也很有用。在web.config=> configuration=>configSections部分粘贴一个新的 Telerik 报告配置,如果您没有:

<section
      name="Telerik.Reporting"
      type="Telerik.Reporting.Configuration.ReportingConfigurationSection, Telerik.Reporting, Version=11.0.17.118, Culture=neutral, PublicKeyToken=a9d7983dfcc261be"
      allowLocation="true"
      allowDefinition="Everywhere"/>

version在属性中使用您的 Telerik 版本。您可以从Solution Explorer=> your project name=> References=> TelerikReporting=>Properties找到它, 另外,在<configrations>正文中,粘贴:

 <Telerik.Reporting>
<extensions>
  <render>
    <extension name="RTF" visible="false">
    </extension>
    <extension name="PDF" visible="false">
    </extension>
    <extension name="CSV" visible="false">
    </extension>
    <extension name="IMAGE" visible="false">
    </extension>
    <extension name="MHTML" visible="false">
    </extension>
    <extension name="XPS" visible="false">
    </extension>
  </render>
</extensions>
  </Telerik.Reporting>

在上面的代码中,我禁用了除 Excel 之外的任何导出类型。

于 2017-09-24T14:26:27.620 回答