我们在网站上使用了很多报告。将某些报告导出为PDF时,文件大小变大,服务器因负载而崩溃。因此,如果我可以仅针对某些有问题的报告禁用导出到PDF选项,那将会很棒。
那么有没有办法在报表查看器9.0(SSRS)中为单个报表禁用某些导出选项(例如:导出为PDF)?
谢谢。
答案 0 :(得分:6)
以防万一其他人在此之前或链接文章中大声说出来:
最简洁的全局解决方案是在RS配置文件中找到渲染引擎(我位于: C:\ Program Files \ Microsoft SQL Server \ MSRS12.MSSQLSERVER \ Reporting Services \ ReportServer \ rsreportserver.config ),转到xml键:扩展程序> 渲染,并在要隐藏的每个条目的末尾插入以下属性:
可见= “假”
示例:
< Extension Name =“XML”Type =“Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRendering” Visible =“false” />
或者在条目的开头和结尾添加<! - 和 - > (HTML评论标记)。
对于个人报告,这些功能可以解决问题。
答案 1 :(得分:2)
您可以在此处在特定配置文件中全局隐藏PDF按钮:
“InstallPath \ Reporting Services \ ReportServer \ rsreportserver.config”
有关详细信息,StackOverflow上已有一个关于此主题的主题。
请在此处查看更多答案:ReportViewer - Hide PDF Export
答案 2 :(得分:2)
您可以在报告查看器中使用Pre_render事件。
protected void ReportViewer1_PreRender(object sender, EventArgs e)
{
DisableUnwantedExportFormat((ReportViewer)sender, "Excel");
DisableUnwantedExportFormat((ReportViewer)sender, "Word");
}
看一下这篇文章
答案 3 :(得分: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();
});
答案 4 :(得分:0)
这解决了问题(部分对我们而言):
答案 5 :(得分:0)
我正在使用MvcReportViewer库在我们的MVC应用程序中获取SSRS的报表查看器。该库不支持用户控件生命周期事件,因此我无法使用shamcs提供的PreRender方法。 Ristanovic Marko描述的Javascript方法部分有效,但选择器不能用于我们使用的SSRS版本,它需要在IFrame中加载JQuery,并且它没有描述仅为特定报告执行此操作的方法。这就是我想出的:
在我的ReportViewer partial中,我添加了以下脚本块:
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);
});
});
}
答案 6 :(得分: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>
答案 7 :(得分:-1)
问题不是新问题,但也许对于有同样问题的其他人来说,我的回答也很有用。在web.config
=&gt; configuration
=&gt; 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 verion。你可以从Solution Explorer
=&gt;找到它your project name
=&gt; References
=&gt; TelerikReporting
=&gt; 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之外的任何导出类型。