web-dev-qa-db-fra.com

SSRS - Désactivation des options d'exportation (par exemple, PDF) pour des rapports individuels

Nous avons beaucoup de rapports que nous utilisons sur le site. Lors de l’exportation de certains rapports au format PDF, la taille du fichier devient énorme et le serveur se bloque en raison de la charge. Ce serait donc bien si je pouvais désactiver l'option d'exportation vers PDF uniquement pour certains rapports problématiques. 

Existe-t-il donc un moyen de désactiver certaines options d'exportation (exemple: exporter au format PDF) dans Report Viewer 9.0 (SSRS), pour des rapports individuels?

Je vous remercie.

12
user1449265
0
user1449265

Juste au cas où personne d'autre ne le dirait à voix haute avant ici ou dans des articles liés:

La solution globale la plus simple consiste à rechercher les moteurs de rendu dans le fichier de configuration RS (le mien se trouve dans: C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config), accédez à Clé xml: Extensions > Render et insérez la propriété suivante à la fin de chaque entrée à masquer: 

Visible = "false"

Exemple: 

<Nom de l'extension = "XML" Type = "Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport, Microsoft.ReportingServices.DataRendering" Visible = "false" />

Vous pouvez également placer <! - et -> (marqueurs de commentaire HTML) au début et à la fin de l'entrée.

Pour les rapports individuels, ces fonctions feront l'affaire.

6
Remigiusz Banaszak

Vous pouvez utiliser l'événement Pre_render dans Report Viewer.

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

Regardez ce post 

Exemple Supprimer Enregistrer sous dans SSRS

2
shamcs

Vous pouvez masquer le bouton PDF de manière globale dans un fichier de configuration spécifique ici:

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

Pour plus d'informations, il existe déjà un sujet à ce sujet sur StackOverflow.

Veuillez rechercher d’autres réponses ici: ReportViewer - Masquer PDF Exporter

2
dn7123

Ma solution pour cela

$(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
Ristanovic Marko

J'utilisais la bibliothèque MvcReportViewer pour obtenir le visualiseur de rapports de SSRS dans notre application MVC. La bibliothèque ne prend pas en charge les événements de cycle de vie du contrôle utilisateur, je n’ai donc pas pu utiliser la méthode PreRender donnée par shamcs. La méthode Javascript décrite par Ristanovic Marko fonctionne partiellement, mais les sélecteurs ne fonctionnaient pas pour la version de SSRS que nous utilisions, il fallait que JQuery soit chargé dans l'IFrame et ne décrit pas comment le faire pour des rapports spécifiques. Voici ce que je suis venu avec: 

Dans mon rapport partiel ViewViewer, j'ai ajouté le bloc de script suivant:

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

Dans ReportViewerWebForm.aspx, j'ai ajouté un autre bloc de 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);
            });
        });
    }
0
R. Salisbury

Vous pouvez utiliser un div sur ce bouton de sauvegarde et définir ses propriétés comme ci-dessous

<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