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 :

[VB.NET] Datagridview + datarelation


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut [VB.NET] Datagridview + datarelation
    Bonjour,

    Je souhaiterai creer un datagridview avec lequelle l'utilisateur cliquerai sur une ligne (entete d'une commande fournisseur) et verrai s'afficher le détails del a commande (liste des articles) comme dans un treeview.

    J'ai bien mon dataset avec ma table 'Entete' et ma table 'Details'

    J'ai egalement aussi réaliser mon datarelation que j'ai ajouter au datatset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' Create DataRelation.
            Dim relCustOrder As DataRelation
            relCustOrder = New DataRelation( _
                "DetailsCommande", dset.Tables("Entete").Columns("nocde"), dset.Tables( _
                "Details").Columns("nocde"))
     
            ' Add the relation to the DataSet.
            dset.Relations.Add(relCustOrder)
    Comment afficher ensuite le résultat dans mon datagridview afin d'avoir la présentation souhaitée. D'avance , je vous remercie

    dgv.datasource = ??????
    dgv.datamember = ??????

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Par défaut
    Bonjour,
    Si une relation est établie le fait de lier(datasource, datamember) le datagrid à la table parent permet d'afficher les enregistrements enfants lorsque on clique sur l'icone +.

    Pour afficher les enregistrements enfants dans un treeview
    1. Récupère le datarow de la ligne sélectionnée
    2. la méthode getchildrows retourne la liste des enregistrements enfants
    3. charge le treeview avec les enregistrements enfants.

    L'utilisation d'un bindingsource simplifie la sélection de l'enregistrement car la propriété current retourne un datarowview de la table parent.

    Avec binding source il est possible d'afficher la table parent dans un datagridview et les lignes enfant dans un autre datagridview
    Pour cela il faut 2 bindingsource
    1 lié à la table parent et l'autre à la relation.

    Voir exemple dans l'aide sur la datagridview
    Bon boulot Jean

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut
    Merci pour les conseils.

    J'ai cependant une petite question. Quand vous dites 'Charger le treeview avec les enregistrements enfants' vous parlez bien du treeview 'inclus' dans le datagrid?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Par défaut
    Bonjour,
    Désolé je n'avais pas vu "comme dans un treeview" dans ta question.
    Dans ma réponse il un treeview séparé, comme il n'y a pas de propriété datasource il faut le charger par le code.
    Le treeview du datagrid et lui créé automatiquement chaque fois que l'on clique sur + (le DGV crée une vue sur la relation et affiche le résultat).
    Bon boulot Jean

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut
    C'est bien ce que je pensais 'automatiquement' mais chez moi ce ne marche pas.

    Pour remplir mon dgv je dois bien faire ceci
    (Supponsons le dataset avec deux tables ('Entete' et 'Details')

    dgv.dataSource = monDataSet
    dgv.dataMember = "Entete"

    Normalement il devrait faire le reste automatiquement?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Par défaut
    Bonjour,
    Je suis désolé Honte à moi.
    La vue des enregistrements enfant est implémentée dans un datagrid uniquement, la propriété allownavigation autorise ou pas les vues de la table enfant.
    Je viens de m'en rendre compte car avec le datagridview j'ai toujours utilisé 2 datagridview(parent-enfant)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    BSParent = New BindingSource
        BSParent.DataSource = Dataset
        BSEnfant = New BindingSource
        BSEnfant.DataSource = BSparent
        BSEnfant.DataMember = "NomRelation"
        DGVParent.DataSource = BSParent
        DGVEnfant.DataSource = BSEnfant
    Bon boulot Jean

Discussions similaires

  1. [VB.NET][DataGridView]:couleur de fond d'une cellule
    Par BigTicket42 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/05/2008, 22h07
  2. [VB.NET] datagridview et sélection
    Par olbi dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/05/2006, 11h22
  3. [VB.NET] DataGridView à double entrée: comment faire?
    Par BillyboyK dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/04/2006, 09h06
  4. [vb.net] datagridview imbriqués, possible ou non?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/02/2006, 17h46
  5. [VB.NET] DataGridView et synchronisation avec une BD
    Par tidan dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/02/2006, 11h12

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