SSRS - Отключение параметров экспорта (например, PDF) для отдельных отчетов

У нас есть много сообщений, которые мы используем на веб-сайте. При экспорте некоторых отчетов в формате PDF размер файла становится огромным, и сервер вылетает из-за загрузки. Поэтому было бы здорово, если бы я мог отключить экспорт в PDF файл только для определенных проблемных отчетов.

Итак, есть ли способ отключить некоторые параметры экспорта (например: экспорт в PDF) в средство просмотра отчетов 9.0 (SSRS) для отдельных отчетов?

Спасибо.

Ответ 2

На всякий случай никто еще не сказал это вслух перед этим или в связанных статьях:

Самое яркое глобальное решение - найти механизмы рендеринга в файле конфигурации 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) в начале и конце записи.

Для отдельных отчетов эти функции будут делать трюк.

Ответ 3

Вы можете скрыть PDF файл глобально в определенном файле конфигурации здесь:

"InstallPath\Reporting Services\ReportServer\rsreportserver.config"

Для получения дополнительной информации в StackOverflow уже есть тема.

Подробнее см. здесь: ReportViewer - Скрыть экспорт PDF

Ответ 4

Вы можете использовать событие Pre_render в Report Viewer.

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

Посмотрите на этот пост

Пример Удалить сохранить как в SSRS

Ответ 5

Мое решение для этого

$(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();
});

Ответ 6

Я использовал библиотеку 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);
            });
        });
    }

Ответ 7

Вы можете использовать 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> 

Ответ 8

Вопрос не новый, но, возможно, для других с одинаковой проблемой. Мой ответ тоже будет полезен. В разделе 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.