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

ASP.NET Discussion :

[2.0] Problème bizarre sur reportserver


Sujet :

ASP.NET

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Par défaut [2.0] Problème bizarre sur reportserver
    bonjour,

    J'ai réussi à créer mon graphique exemple. Cela marche bien. Cependant, j'ai plusieurs rapports (fichier rdlc) et les graphique doivent se charger dynamiquement. L'avantage est que les paramètres sont tjs les mêmes. J'en ai 3.

    Je cherche donc sur google comment passer des paramètres par code. Voici le tuto que j'ai exploité :

    http://odelmotte.developpez.com/tuto...g/?page=page_6

    Plus communément, le code qui nous intéresse ici est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    List<ReportParameter> par = new List<ReportParameter>();
    ReportParameter p = new ReportParameter("saleid","43660");
    par.Add(p);
    this.reportViewer1.ServerReport.SetParameters(par);
     
    this.reportViewer1.RefreshReport();

    J'ai donc appliquer à mon exemple à moi et cela donne :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    rvGraf.ProcessingMode = ProcessingMode.Remote;
    rvGraf.ServerReport.ReportServerUrl = new Uri("http://dy1sk099/ReportServer/e-stats/",true);
            //rvGraf.ServerReport.ReportPath = @"_cartes_identites\rapports\";
    
            // Charger le bon rapport
            switch (oGraph.IdOnglet)
            {
    
                case 4:
                    rvGraf.ServerReport.ReportPath += "TpsAllumage.rdlc";
                    break;
    
                case 6:
                    rvGraf.ServerReport.ReportPath += "Sanitaire.rdlc";
                    break;
    
                case 11:
                    rvGraf.ServerReport.ReportPath += "ConsoGaz.rdlc";
                    break;
    
                default:
                    rvGraf.ServerReport.ReportPath = "";
                    break;
    
            }
    
            // Initialisation des paramètres
            List<ReportParameter> par = new List<ReportParameter>();
    
            // Définition du paramètre contrat
            ReportParameter oContrat = new ReportParameter("IdContrat", oGraph.IdContrat.ToString());
            par.Add(oContrat);
    
            // Définition du paramètre Modele
            ReportParameter oModele = new ReportParameter("Modele", oGraph.Modele.ToString());
            par.Add(oModele);
    
            // Définition du paramètre Réinit
            ReportParameter oReinit = new ReportParameter("IdReinit", oGraph.IdReinit.ToString());
            par.Add(oReinit);
    
            // Ajout des paramètres
            rvGraf.ServerReport.SetParameters(par);
    
            // Actualisation du rapport
            rvGraf.ServerReport.Refresh();
            rvGraf.DataBind();
    Il plante sur l'erreur soulignée et me donner message d'erreur :

    {"Le client a trouvé '' comme type de contenu de la réponse, alors qu'il attendait 'text/xml'.\r\nÉchec de la requête avec une réponse vide."}
    Je n'ai rien trouvé sur google concernant cette erreur


    Je met cette solution en place du coup :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
      rvGraf.ProcessingMode = ProcessingMode.Local;
     
            //rvGraf.LocalReport.ReportServerUrl = new Uri("http://dy1sk099/ReportServer/e-stats/",true);
            rvGraf.LocalReport.ReportPath = @"_cartes_identites/rapports/";
     
            // Charger le bon rapport
            switch (oGraph.IdOnglet)
            {
     
                case 4:
                    rvGraf.LocalReport.ReportPath += "TpsAllumage.rdlc";
                    break;
     
                case 6:
                    rvGraf.LocalReport.ReportPath += "Sanitaire.rdlc";
                    break;
     
                case 11:
                    rvGraf.LocalReport.ReportPath += "ConsoGaz.rdlc";
                    break;
     
                default:
                    rvGraf.LocalReport.ReportPath = "";
                    break;
     
            }
     
            // Initialisation des paramètres
            List<ReportParameter> par = new List<ReportParameter>();
     
            // Définition du paramètre contrat
            ReportParameter oContrat = new ReportParameter("IdContrat", oGraph.IdContrat.ToString());
            par.Add(oContrat);
     
            // Définition du paramètre Modele
            ReportParameter oModele = new ReportParameter("Modele", oGraph.Modele.ToString());
            par.Add(oModele);
     
            // Définition du paramètre Réinit
            ReportParameter oReinit = new ReportParameter("IdReinit", oGraph.IdReinit.ToString());
            par.Add(oReinit);
     
            // Ajout des paramètres
            rvGraf.LocalReport.SetParameters(par);
     
            // Actualisation du rapport
            rvGraf.LocalReport.Refresh();
            rvGraf.DataBind();
    Et l'erreur cette fois ci est :


    {L'évaluation des fonctions est désactivée, car une précédente évaluation des fonctions a dépassé le délai d'attente autorisé. Vous devez continuer l'exécution pour réactiver l'évaluation des fonctions.}


    Comme vous l'aurez compris, le but étant d'avoir une seule page graphique.aspx et charger le graphique en fonction de la demande de l'utilisateur.

    J'ai détaillé un maximum pour vous éclairer en espérant que vous avez une solution...

  2. #2
    Membre Expert

    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    1 737
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 737
    Par défaut
    nan, mais les états sont tous sur le server donc déjà la dernière solution qui parle d'états en local je vois pas ce que ca vient faire la

    le databind ... je vois pas non plus ce qu'il vient faire ici puisque c'est tout le serveur qui gère

    mais en fait je crois surtout que vous ne maitrisez pas trop le sujet

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Par défaut
    J'ai montré 2 solutions en fait que j'ai essayé de mettre en place : L'une avec les rapports sur le server et l'autre avec les rapports en local. J'ai peut être du me planter en copiant collant. Et si je pose des questions, que je cherche à comprendre, c'est surtout parce que je ne maitrise pas le sujet comme vous dites et c'est en cherchant que je maitriserai

    bref ! Maintenant ca marche... J'ai donc fait ceci :

    -> Solution locale
    -> Chaque ReportViewer est dans un user control et quand l'utilisateur choisit le graphique, cela charge le bon user control.
    -> Chaque ReportViewer a donc son ObjectDataSource qui est associé au bon dataset.
    -> Chaque ReportViewer a donc son fichier rapport rdlc.

    Pour exemple, voici un user control d'un graphique :
    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
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Sanitaire.ascx.cs" Inherits="_cartes_identites_graphiques_Sanitaire" %>
    <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
        Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
    <rsweb:ReportViewer ID="rvGraphSanitaire" runat="server" Height="620px" Width="970px"
        ShowDocumentMapButton="False" ShowExportControls="False" ShowFindControls="False"
        ShowPageNavigationControls="False" ShowPrintButton="False"
        ShowPromptAreaButton="False" ShowRefreshButton="False" ShowZoomControl="False" Font-Names="Verdana" Font-Size="8pt">
        <LocalReport ReportPath="_cartes_identites\rapports\Sanitaire.rdlc">
            <DataSources>
                <rsweb:ReportDataSource DataSourceId="objSanitaire" Name="Sanitaire_PS_ResultatsSanitaire" />
            </DataSources>
        </LocalReport>
    </rsweb:ReportViewer>
    <asp:ObjectDataSource ID="objSanitaire" runat="server" SelectMethod="GetData"
        TypeName="SanitaireTableAdapters.PS_ResultatsSanitaireTableAdapter" OldValuesParameterFormatString="original_{0}">
        <SelectParameters>
            <asp:SessionParameter Name="paramIdContrat" SessionField="IdContratGraph" Type="String" />
            <asp:SessionParameter Name="paramModele" SessionField="ModeleGraph" Type="String" />
            <asp:SessionParameter DefaultValue="" Name="paramIdReinit" SessionField="IdReinitGraph"
                Type="String" />
        </SelectParameters>
    </asp:ObjectDataSource>

    A la base, je voulais vraiment avoir un seul user controle, mais je me plains pas du résultat. Les courbes sont belles et le client est content

    Cependant, cela marche sur sur mon poste de développement ! Quand je publie sur le serveur de production, j'ai cette erreur à chaque affichage de graphique :

    An error occurred during local report processing.
    The definition of the report 'Main Report' is invalid.
    The report definition is not valid. Details: Data at the root level is invalid. Line 1, position 1.

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Par défaut
    J'ai fait quelques recherches mais que des solutions en anglais trop souvent pas claires...

    Je réitère ma demande d'aide et notament à l'auteur du tutoriel sur le reporting ...

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Par défaut
    Comme quoi le hasard fait bien les choses. J'ai trouvé le souci. Lorsque je publie le site intranet vers le site de production, je décoche la case "Autoriser ce site précompilé à être mise à jour" et du coup, les fichiers rdlc sont compilés dans la solution et le flux xml disparait naturellement, il me suffisait de copie dans un 2ème tps les fichiers rapports et le tour est joué. Pour quelqu'un qui ne maitrise pas le sujet, j'estime m'en être bien sorti...

    Merci ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probléme bizarre sur motion
    Par yann458 dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 24/11/2013, 01h05
  2. Problème bizarre sur validation cellule Excel
    Par Contrec dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/01/2009, 14h32
  3. Réponses: 3
    Dernier message: 05/11/2007, 11h58
  4. problèmes bizarres avec jdbc
    Par jaimepasteevy dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 12/12/2003, 12h00
  5. Réponses: 4
    Dernier message: 28/09/2002, 00h00

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