我们在网站上使用了许多报告。在将某些报告导出为PDF时,文件大小变大,服务器因加载而崩溃。所以,如果我只能针对某些有问题的报告禁用导出为PDF选项,那就太好了。SSRS - 为个别报告禁用导出选项(例如PDF)
那么是否有办法在报表查看器9.0(SSRS)中为个别报表禁用某些导出选项(例如:导出为PDF)?
谢谢。
我们在网站上使用了许多报告。在将某些报告导出为PDF时,文件大小变大,服务器因加载而崩溃。所以,如果我只能针对某些有问题的报告禁用导出为PDF选项,那就太好了。SSRS - 为个别报告禁用导出选项(例如PDF)
那么是否有办法在报表查看器9.0(SSRS)中为个别报表禁用某些导出选项(例如:导出为PDF)?
谢谢。
可以在全局范围隐藏在一个特定的配置文件在这里PDF按钮:
“安装路径\ Reporting Services的\的ReportServer \ rsreportserver.config”
有关详细信息,已经有关于这个StackOverflow上的话题。
请更多的答案点击这里:ReportViewer - Hide PDF Export
我给这家
$(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();
});
这个问题可能在问题得到解答时发挥作用,但不在新版本的SSRS中。查看我的答案获取更多信息。 – 2017-08-03 15:35:54
您可以使用Pre_render解决方案报告查看器中的事件。
protected void ReportViewer1_PreRender(object sender, EventArgs e)
{
DisableUnwantedExportFormat((ReportViewer)sender, "Excel");
DisableUnwantedExportFormat((ReportViewer)sender, "Word");
}
这个帖子看看
嗨shamcs,我会在哪里放置上面的代码。我不认为它进入报告的自定义代码部分 – 2014-10-29 09:28:46
@MarkOKeeffe您可以按照我在那里给出的链接,在报告查看器控制器上,向事件OnPreRender添加操作。 – shamcs 2014-10-30 09:37:58
万一别人说出声之前在这里或在相关报道:
的neatiest全球性解决方案是找到(我的程序位于:C:\ Program Files \ Microsoft SQL Server \ MSRS12.MSSQLSERVER \ Reporting Services \ ReportServer \ rsreportserver.config),请转至xml键: 扩展>渲染,并在每个条目的末尾插入下面的属性,你要隐藏:
可见= “假”
例子:
<扩展名=“XML”Type =“Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRendering”Visible =“false”/>
或者把< - !和- >(HTML注释标记)在入口的开始和结束。
对于个别报告,这些功能将会有所斩获。
好简洁的回答! – callisto 2016-09-09 06:10:06
我正在使用MvcReportViewer库在我们的MVC应用程序中获取SSRS的报告查看器。该库不支持用户控件生命周期事件,所以我无法使用shamcs提供的PreRender方法。由Ristanovic Marko描述的Javascript方法部分工作,但选择器不适用于我们使用的SSRS版本,它需要将JQuery加载到IFrame中,并且它没有描述只为特定报告执行此操作的方法。以下是我想出了:
在我的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);
});
});
}
问题不是新的,但也许对于有同样问题的人来说,我的答案也是有用的。在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"/>
使用您的优化版本Telerik的在version
属性。你可以从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中。
谢谢。但是不能全局禁用所有报告的“导出为PDF”?我们想要实现的目的是能够禁止仅为单个报告导出为PDF。 – user1449265 2013-04-09 09:20:06
我的答案末尾的链接包含针对此特定问题的更多解决方案,而不会全局禁用PDF导出。 – dn7123 2013-04-12 07:47:56