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 :

Visual Studio 2010 - Reporting : Problème sur ReportViewer


Sujet :

SSRS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Par défaut Visual Studio 2010 - Reporting : Problème sur ReportViewer
    Bonjour,

    Je développe actuellement une application de reporting avec un projet Visual Studio de type « Site web des rapports ASP.NET ». Mon projet est composé d’un rapport (fichier .rdlc), d’un ReportViewer dans ma page Default.aspx et d’une SqlDataSource reliée au ReportViewer.
    La SqlDataSource récupère des données via une requête SQL au chargement de la page. Dans le cas ou je ne fait aucune modification, le rapport et les données sont bien affichées.

    Cependant, si je modifie les DataSources contenu dans ReportViewer.LocalReport.DataSources, que ce soit un ajout ou une suppression d’un DataSource, au moment ou la page web se lance, la structure du ReportViewer s’affiche avec une animation de chargement. Cependant les données ne s’affichent pas et l’animation de chargement tourne sans fin.

    Même dans le cas ou j’extrais le DataSource généré de base au chargement, et que je le ré insert, sans le modifier, dans la collection ReportViewer.LocalReport.DataSources, la page web bloque sur l’animation de chargement.
    Je n’ai aucun message d’erreur.

    En gros, si je touche a rien ça marche, si je vide la collection DataSources j'ai bien le message "DataSource vide" et si j'inserts moi même un DataSource la page web se lance bien mais bloque sur le chargement des données dans le ReportViewer.


    Ce code récupère la référence du DataSource stocké dans la collection DataSources, pour ensuite vider cette collection et réinsérer le DataSource d'origine. Dès que la collection est modifiée, le chargement de la page bloque.
    D'après le MSDN, j'utilise la bonne méthode et pourtant...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            ReportDataSource rds;
            rds = ReportViewer1.LocalReport.DataSources[0];
     
            //ReportViewer1.LocalReport.DataSources.Clear();
     
            ReportViewer1.LocalReport.DataSources.RemoveAt(0);
            ReportViewer1.LocalReport.DataSources.Add(rds);
     
            ReportViewer1.LocalReport.Refresh()
    Merci d’avance pour vos réponses.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Par défaut
    re,
    j'ai enfin une solution.
    Le problème était que la page se chargeait en continue, situation vérifiable grâce à l'événement Page_load(...).
    Ce problème est du au fait que si on touche à une DataSource relié à un contrôle de la page (dumoins dans le cas du ReportViewer), avant la fin du chargement de base de la page, un bug sera engendré au niveau du chargement.

    Il est possible d'éviter ce problème en utilisant la méthode IsPostBack() qui va vérifier si il s'agit du 1er chargement ou pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            if(!IsPostBack())
            {
                 ReportDataSource rds;
                 rds = ReportViewer1.LocalReport.DataSources[0];
     
                 ReportViewer1.LocalReport.DataSources.RemoveAt(0);
                 ReportViewer1.LocalReport.DataSources.ADD(rds);
            }
    Maintenant ce code marche, la récupération et l'insertion s'effectue qu'une seule fois, au 1er chargement de la page, et n'engendre plus un chargement sans fin.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/11/2014, 05h05
  2. Visual Studio 2010 - Qt - Problème d'accents
    Par CliffeCSTL dans le forum Débuter
    Réponses: 3
    Dernier message: 30/12/2012, 20h21
  3. [Débutant] Visual Studio 2010 (VB) - Problème de classes imbriquées
    Par patrickvier dans le forum VB.NET
    Réponses: 5
    Dernier message: 21/09/2012, 12h15
  4. Visual Studio 2010 : Erreur 404 sur lecteur réseau
    Par yakiniku dans le forum Visual Studio
    Réponses: 0
    Dernier message: 08/06/2012, 11h09
  5. Réponses: 16
    Dernier message: 06/01/2010, 16h17

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