Ответ 1
Это решает проблему (частично для нас):
У нас есть много сообщений, которые мы используем на веб-сайте. При экспорте некоторых отчетов в формате PDF размер файла становится огромным, и сервер вылетает из-за загрузки. Поэтому было бы здорово, если бы я мог отключить экспорт в PDF файл только для определенных проблемных отчетов.
Итак, есть ли способ отключить некоторые параметры экспорта (например: экспорт в PDF) в средство просмотра отчетов 9.0 (SSRS) для отдельных отчетов?
Спасибо.
Это решает проблему (частично для нас):
На всякий случай никто еще не сказал это вслух перед этим или в связанных статьях:
Самое яркое глобальное решение - найти механизмы рендеринга в файле конфигурации RS (мой сидит в: C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config), перейдите в xml key: Расширения > Render и вставьте следующее свойство в конце каждой записи, которую вы хотите скрыть:
Видимый = "ложь"
Пример:
< Extension Name= "XML" Тип = "Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport, Microsoft.ReportingServices.DataRendering" Видимый = "false" / >
В качестве альтернативы поместите <! - и → (маркеры комментариев HTML) в начале и конце записи.
Для отдельных отчетов эти функции будут делать трюк.
Вы можете скрыть PDF файл глобально в определенном файле конфигурации здесь:
"InstallPath\Reporting Services\ReportServer\rsreportserver.config"
Для получения дополнительной информации в StackOverflow уже есть тема.
Подробнее см. здесь: ReportViewer - Скрыть экспорт PDF
Вы можете использовать событие Pre_render в Report Viewer.
protected void ReportViewer1_PreRender(object sender, EventArgs e)
{
DisableUnwantedExportFormat((ReportViewer)sender, "Excel");
DisableUnwantedExportFormat((ReportViewer)sender, "Word");
}
Посмотрите на этот пост
Мое решение для этого
$(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();
});
Я использовал библиотеку MvcReportViewer, чтобы получить средство просмотра отчетов SSRS в нашем приложении MVC. Библиотека не поддерживает события жизненного цикла User Control, поэтому я не смог использовать метод PreRender, заданный shamcs. Метод Javascript, описанный Ристановичем Марко, частично работает, но селекторы не работали для версии SSRS, которую мы использовали, для этого требуется, чтобы JQuery загружался в IFrame, и он не описывает способ сделать это только для определенных отчетов. Вот что я придумал:
В части PartView ReportViewer я добавил следующий блок script:
var frame = $('#reportframe');
var src = frame.attr('src');
frame.attr('src', src + '?showAdditionalExports=' + @ViewBag.ShowExportsAttribute);
В ReportViewerWebForm.aspx я добавил еще один блок script:
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);
});
});
}
Вы можете использовать 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>
Вопрос не новый, но, возможно, для других с одинаковой проблемой. Мой ответ тоже будет полезен. В разделе 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 verion в атрибуте version
. вы можете найти его от Solution Explorer
= > your project name
= > References
= > TelerikReporting
= > Properties
И также, в <configrations>
body, вставить:
<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.