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

VB.NET Discussion :

Changer la source d'un crystal report [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut Changer la source d'un crystal report
    Bonsoir

    Voila mon problème:
    J'ai un crystalreport nommé releve_banquaire.rpt, je l'ai crée avec l'assistant il contient les champs d'une table access.

    J'ai fais une Form qui contient un CrystalReportViewer.

    Je voudrais modifier la source du crystalreport afin de trier les données avant de les envoyées dans le crystalreport.

    voici mon code:
    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
         MyConnexion.Open()
                Dim strSqlSoc As String = "SELECT TOperationBanques.NumeroCompte, TOperationBanques.TRNTYPE, TOperationBanques.DTPOSTED, TOperationBanques.TRNAMT, TOperationBanques.FITID, TOperationBanques.NomOperation, TOperationBanques.StrMEMO" _
             & " FROM TOperationBanques " _
             & " WHERE ((TOperationBanques.NumeroCompte)= 123456789)" _
             & " ORDER BY TOperationBanques.DTPOSTED"
     
                Dim adapterSoc As New OleDbDataAdapter(strSqlSoc, MyConnexion)
                Dim DS_OpBanq As New DataSet
     
                adapterSoc.Fill(DS_OpBanq, "TResultatRequete")
                MyConnexion.Close()
                'creer objet etat
                Dim MonEtat As New releve_banquaire
     
                'source de donnee
                MonEtat.SetDataSource(DS_OpBanq)
                'affecter l'etat au controle viewer
                CrystalReportViewer1.ReportSource = MonEtat
                CrystalReportViewer1.Refresh()
    Le soucis est que la source du CR n'a pas changé c'est toujours la totalité de la table access et non ma requete.

    J'ai du zapper quelque chose parce que je pense avoir suivi les tutos correctement.

    Merci de votre aide.
    Gilles

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Je pense que le problème vient du fait que tu utilises un dataset générique et que crystal report nécessite un dataset typé.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut
    Merci de ta réponse griftou

    Effectivement je n'avais pas fais attention à ca.

    Je n'aime pas créer avec l'assistant les datasets.

    Du coup pourrais tu me donner une piste pour faire un dataset fortement typé par le code?

    Dois je créer la datatable avec ses différents champs par le code puis remplir la datatable ligne par ligne?

    Ensuite je met ma datatable en source du crystal report.

    Est ce la bonne méthode?

    Merci

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Oui, tu dois recréer un dataset qui a en fait la même structure que le dataset utilisé pour créer le rapport.

    Il faut donc créer une datatable et y ajouter les colonnes une par une et ajouter cette table au dataset.

    Mais je crois que tu aurais plus facile de faire cela via le designer...

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut
    Merci de ta réponse, effectivement tu avais raison en créant un dataset avec le designer cela fonctionne.

    La raison pour laquelle je n'aime pas me servir du designer est la suivante:
    dans mon projet j'ai beaucoup de formulaire et de module.
    La BDD qui contient les données contient elle aussi beaucoup de tables dont certaines ont plusieurs milliers d'enregistrements.

    Donc j'ai deux solutions (enfin je pense)
    soit je créer a chaque fois que j'en ai besoin un dataset contenant uniquement les tables et les champs qui m' intéresse. Et la je vais avoir beaucoup de dataset dans mon projet

    Soit je crée un seul dataset qui contient toutes les tables de ma BDD.
    Mais j'ai peur que cela ralentisse l'affichage si le dataset doit se charger entièrement, alors que dans le cas présent je n'ai besoin que d'une seule table.

    D'ou mon choix de tout créer par le code, et de ne charger que ce dont j'ai besoin.

    est ce le bon choix?


    Je mets la discution en résolue car cela fonctionne maintenant.
    Merci encore

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    A priori, le fait d'avoir beaucoup de datasets dans le projet ne me dérange pas vraiment.

    Le fait d'avoir un seul et énorme dataset me dérange car, comme tu le dis, cela risque fort de ralentir l'application au chargement des données.

    Même si tu as beaucoup de datasets, à partir du moment où les noms sont clairs, je ne pense pas que cela posera de problème. Faut voir aussi ce que tu appelles beaucoup ^^.

    Enfin... Si ça fonctionne, c'est déjà ça ^^

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

Discussions similaires

  1. Réponses: 28
    Dernier message: 28/04/2012, 14h10
  2. Réponses: 1
    Dernier message: 05/02/2010, 13h10
  3. Changer la source de données d'un état Crystal report
    Par othinakidev dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/06/2009, 13h59
  4. [Crystal Report 8] créer une source de données oracle
    Par Lina dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 14/11/2002, 13h53
  5. [Crystal Report 9] Changer de schéma avec Oracle
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2002, 12h19

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