2010-08-17 21 views
3

J'utilise ssrs avec un contrôle asp.net reportviewer pour afficher les rapports du serveur. Nous voulons supprimer la barre d'outils, car elle ne correspond pas à notre apparence, mais nous voulons conserver certaines fonctionnalités, le seul problème avec lequel je me bats est l'impression. Est-il possible d'afficher la même boîte de dialogue d'impression que le bouton d'impression de cette barre d'outils à partir de la page asp.net?Comment appeler print depuis asp.net sur un contrôle reportviewer?

http://msdn.microsoft.com/en-us/library/ms252091(v=VS.80).aspx

est le plus proche que je l'ai trouvé, mais je ne suis pas à l'aide des rapports locaux (il serait logique s'il y avait une fonction intégrée autour de quelque part), et il permet de sauter la partie de dialogue de l'imprimante ce qui est inacceptable. Je ne crois pas que je puisse réellement appeler les winforms printdialog sur une page asp.net, mais ce n'est pas quelque chose que j'ai essayé. Toute aide serait grandement appréciée.

Répondre

2

Voici un script pour afficher la boîte de dialogue d'impression:

<script language="javascript"> 
     function PrintReport() { 
      var viewerReference = $find("ReportViewer1"); 

      var stillonLoadState = clientViewer.get_isLoading(); 

      if (!stillonLoadState) { 
       var reportArea = viewerReference .get_reportAreaContentType(); 
       if (reportArea == Microsoft.Reporting.WebFormsClient.ReportAreaContent.ReportPage) { 
        $find("ReportViewer1").invokePrintDialog(); 
       } 
      } 
     } 
    </script> 

Pour appeler, il suffit d'appeler PrintReport()

Explication détaillée ici: http://blogs.msdn.com/b/selvar/archive/2011/04/09/invoking-the-print-dialog-for-report-viewer-2010-control-using-the-javascript-api.aspx

+0

Joel, cela a fonctionné pour moi sur IE après installer le plugin Reporting Services. Cependant, je ne pouvais pas le faire fonctionner sur Chrome, il n'y a pas d'invite pour installer le plugin. Aucune suggestion ? –

+0

Joel, après avoir consulté le lien msdn blog, j'ai lu les commentaires et j'ai trouvé que ces API JS ne sont disponibles que pour les navigateurs supportés par active-x. –

+1

Autant que je me souvienne, même si cela fait longtemps que j'ai travaillé avec ce contrôle, l'impression peut ne pas fonctionner dans les navigateurs non IE. Ce lien semble indiquer que: http://msdn.microsoft.com/en-us/library/ms251673.aspx. –