IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSRS Discussion :

[2K8] Impression auto depuis webservice SSRS 2K8


Sujet :

SSRS

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut [2K8] Impression auto depuis webservice SSRS 2K8
    Bonjour à tous,

    J'utilise le WS SSRS 2K8 pour un système d'édition de documents développé en ASP.NET (VB). Ma page ASP contient le composant Webform report viewer que je viens charger via le WS SSRS 2K8.

    C'est grosso modo l'équivalent de Chrystal report version web.

    Dans le cadre de l'évolution de l'outil, on me demande d'automatiser l'impression des documents afin d'éviter un click sur bouton imprimante puis le valider de la printdialog. L'impression se fait donc sur l'imprimante par défaut de la machine. On est sur un flux industriel où 2 clicks sur 20 utilisateurs à la fin de l'année font quelques $

    J'ai donc bricolé un peu de javascript pour arriver à supprimer le 1er click sur le bouton imprimante. Mais pour faire le valider sur la printdialog...je vois pas.

    L'impression doit obligatoirement être réalisée coté client (Je mets en avant ce point car j'ai bricolé une solution bancale qui réalise les impressions depuis le serveur sur le poste client mais c'est vraiment pas terrible )

    Vous avez peut être une idée ? une autre solution ?

  2. #2
    Membre Expert Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Par défaut
    Sinon via l'API du web service de RS: ici un post de Bryan Keller en 2000 mais qui doit s'adapter en 2005/2008. Tu crées un bouton et youpla.

    http://blogs.msdn.com/bryanke/articles/71491.aspx

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    Citation Envoyé par FrancoisJehl Voir le message
    Sinon via l'API du web service de RS: ici un post de Bryan Keller en 2000 mais qui doit s'adapter en 2005/2008. Tu crées un bouton et youpla.

    http://blogs.msdn.com/bryanke/articles/71491.aspx
    Merci Fraçois,

    Si je l'intègre à ma page ASP, ça sera imprimé coté serveur. Je souhaite que l'impression soit lancée coté client.

  4. #4
    Membre Expert Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Par défaut
    Il faut que j'apprenne à lire avant de répondre. En gros tu veux valider la PrintDialog que l'ActiveX RsClientPrint de client-side printing de RS te renvoie. Donc récupérer le handle... Waow... Bon courage

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    Citation Envoyé par FrancoisJehl Voir le message
    Il faut que j'apprenne à lire avant de répondre. En gros tu veux valider la PrintDialog que l'ActiveX RsClientPrint de client-side printing de RS te renvoie. Donc récupérer le handle... Waow... Bon courage
    Banco

    Ou le cas échéant une méthode pour imprimer mais toujours coté client.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Par défaut
    Quelqu'un peut m'aider sur l'interception du handle de la printdialogu box de l'ActiveX RsClientPrint? J'ai fait des recherches sur le Net mais ....

  7. #7
    Membre confirmé
    Femme Profil pro
    Consultante informatique décisionnelle et bases de données
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultante informatique décisionnelle et bases de données

    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Par défaut
    Sur ma page, j'ai un bouton qui appelle une autre page aspx qui s'appelle LancerCheckList
    Code vb du bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim param As String
                param = "?Rapport=/MesRapports/MonRapport&ID=" & sIdC
                Response.Redirect("~/controles/LancerCheckList.aspx" & param)
    Code de la page LancerCheckList :
    Je retourne à ma page de départ au bout de 20 secondes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="LancerCheckList.aspx.vb" Inherits="CEC.LancerCheckList" Trace="true" %>
    <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
        Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
        <script type="text/javascript">
            function imprimer() {
                document.getElementById('ReportViewer1').ClientController.LoadPrintControl();
                //setTimeout('fermer()', 10000);
                setTimeout('Transfer()', 20000);
                //location.href = 'LancerImpression.aspx';
            }
            function fermer() {
                window.open('', '_parent', '');
                window.close();
     
            }
            function Transfer() {
                location.href = "Conformite.aspx";
            }
        </script>
    </head>
    <body onload="imprimer()">
        <form id="form1" runat="server">
        <div>
            <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" 
                Font-Size="8pt" Height="760px" ProcessingMode="Remote" Width="100%">
                <ServerReport ReportPath="/MesRapports/MonRapport" 
                    ReportServerUrl="<%$ appSettings:UrlReportServer %>" />
            </rsweb:ReportViewer>                
        </div>
        </form>
    </body>
    </html>
    Côté VB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim nbparam = Request.QueryString.Count - 1
            ReportViewer1.ServerReport.ReportPath = Request.QueryString("Rapport")
     
            If nbparam > 0 Then
                Dim prm(nbparam - 1) As ReportParameter
                For i = 1 To nbparam
                    prm(i - 1) = New ReportParameter(Request.QueryString.Keys(i), Request.QueryString(i))
                Next
                ReportViewer1.ServerReport.SetParameters(prm)
            End If
        End Sub
    J'espère que cela va t'aider. A la 1ère utilisation côté client, il demande l'autorisation d'exécuter l'activeX rsClientprint.
    Pour éviter cela, il est possible de le déployer sur tous les postes.
    Il me reste un problème de mise en page à résoudre, le client garde le format 'letter' et ne prend pas le format A4 du rapport.

Discussions similaires

  1. [SSRS][2k8] Index hors limites
    Par matb33 dans le forum SSRS
    Réponses: 5
    Dernier message: 12/05/2016, 12h34
  2. Impression automatique depuis webservice SSRS 2K8
    Par fufurax dans le forum ASP.NET
    Réponses: 2
    Dernier message: 19/04/2010, 14h43
  3. [2K8] Table 2 dim depuis WebServices
    Par eurysthe dans le forum SSRS
    Réponses: 1
    Dernier message: 09/03/2010, 15h19
  4. [SSRS][2k8][C#] Imprimer un rapport par code
    Par dinbougre dans le forum SSRS
    Réponses: 2
    Dernier message: 17/10/2008, 09h27
  5. [SSRS][2k8] Performances requête SSRS
    Par matb33 dans le forum SSRS
    Réponses: 11
    Dernier message: 11/08/2008, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo