wake-up-neo.com

SSRS - Deaktivieren Sie die Exportoptionen (z. B. PDF) für einzelne Berichte

Wir haben viele Berichte, die wir auf der Website verwenden. Beim Exportieren einiger Berichte als PDF wird die Dateigröße enorm und der Server stürzt aufgrund der Last ab. Es wäre also toll, wenn ich den Export in die Option PDF nur für bestimmte problematische Berichte deaktivieren kann. 

Gibt es eine Möglichkeit, bestimmte Exportoptionen (z. B. Export nach PDF) in Report Viewer 9.0 (SSRS) für einzelne Berichte zu deaktivieren?

Vielen Dank.

12
user1449265
0
user1449265

Für den Fall, dass es vorher noch niemand gesagt hat oder in verlinkten Artikeln:

Die einfachste globale Lösung besteht darin, die Rendering-Engines in der RS-Konfigurationsdatei zu finden (meine befindet sich in: C:\Programme\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config) XML-Schlüssel: Erweiterungen > Rendern und fügen Sie am Ende jedes Eintrags, den Sie ausblenden möchten, folgende Eigenschaft ein: 

Sichtbar = "falsch"

Beispiel: 

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

Setzen Sie alternativ <! - und -> (HTML-Kommentarmarken) am Anfang und Ende des Eintrags.

Bei einzelnen Berichten können diese Funktionen den Trick ausführen.

6

Sie können das Pre_render-Ereignis im Berichts-Viewer verwenden.

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

Schau dir diesen Beitrag an 

Beispiel zum Entfernen von Speichern unter in SSRS

2
shamcs

Sie können die Schaltfläche PDF in einer bestimmten Konfigurationsdatei hier global ausblenden:

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

Für weitere Informationen gibt es bereits ein Thema zu StackOverflow.

Weitere Antworten finden Sie hier: ReportViewer - Hide PDF Export

2
dn7123

Meine Lösung dafür

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

Ich habe die MvcReportViewer-Bibliothek verwendet, um den Berichts-Viewer von SSRS in unserer MVC-Anwendung zu erhalten. Die Bibliothek unterstützt keine Lebenszyklusereignisse für die Benutzerkontrolle, daher konnte ich die von Shamcs angegebene PreRender-Methode nicht verwenden. Die von Ristanovic Marko beschriebene Javascript-Methode funktioniert teilweise, die Selektoren funktionierten jedoch nicht für die von uns verwendete Version von SSRS. JQuery muss in den IFrame geladen werden. Es wird keine Möglichkeit beschrieben, dies nur für bestimmte Berichte zu tun. Folgendes habe ich mir ausgedacht: 

In meinem ReportViewer-Teil habe ich den folgenden Skriptblock hinzugefügt:

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

In ReportViewerWebForm.aspx habe ich einen weiteren Skriptblock hinzugefügt:

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);
            });
        });
    }
0
R. Salisbury

Sie können ein div über die Schaltfläche "Speichern" verwenden und die Eigenschaften wie folgt festlegen

<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> 
0
Raveesh