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

Lazarus Pascal Discussion :

ZeosLib TDBGrid avec TDBComboBox lié [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut ZeosLib TDBGrid avec TDBComboBox lié
    Bonjour à tous.

    J'aimerais inclure dans un TDBGrid lié à une table d'une base de données, un TDBComboBox lié à une autre table de ma base de données.
    Pouvez-vous me donner la démarche à suivre en utilisant les composants de ZeosLib ?

    Merci.

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour

    C'est un composant visuel orienté données, qui fonctionne sur les mêmes principes que les autres.
    En résumé, il faut poser un composant TZTable, puis un TDataSource lié au premier, puis lier le TDbGrid au TDataSource.

    Avant de poser une question aussi générale, as tu cherché sur le web et dans la doc en ligne ?

    L'essentiel des docs Lazarus sont en anglais :

    http://lazarus-ccr.sourceforge.net/d...bcombobox.html

    http://lazarus-ccr.sourceforge.net/d...econtrols.html

    Et si tu ne sais pas du tout lire cette langue, tu peux utiliser des outils de traduction.

    Ou encore chercher des documentations écrites pour DELPHI, qui sont applicables à 99,9%

    Exemple : http://www.znsoft.fr/Developpement/D...dex.php?page=6
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  3. #3
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par ddaime Voir le message
    J'aimerai inclure dans un TDBGrid liée à une table d'une base de données, un TDBComboBox lié avec une autre table de ma base de données.
    Pouvez vous me donner la démarche à suivre en utilisant les composants de ZeosLib.
    Tintinux l'a dit , c'est bien vague tout cela...
    Quelle est la nature de la relation entre vos 2 tables ?

    Car ce n'est peut-être pas un DbComboBox qu'il vous faudra mais un DbLookUpComboBox...

    http://delphi.developpez.com/faq/?pa...LookUpComboBox est peut-être une piste à explorer...
    Philippe.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Merci pour vos réponses. En effet je n'ai pas été assez précis dans la description de mon problème. Donc pour commencer, je suis débutant en Pascal Objet et je découvre Lazarus. De plus je connais assez l'anglais pour pouvoir lire et comprendre de la documentation écrite dans cette langue. Par contre la documentation sur ZeosLib est assez pauvre.

    Pour résumé, j'ai deux tables (T_QUALITE(QUA_ID, QUA_LIBELLE, AFF_ID) et T_AFFINAGE(AFF_ID, AFF_LIBELLE)) dans une base de données, je sais afficher dans une DBGrid, des données de la table T_QUALITE en utilisant les composants de ZeosLib (TZConnection -> TZTable -> TDataSource), par contre au lieu d'avoir un TColumn de type TEdit représentant la valeur du champ AFF_ID j'aimerai avoir un TDBLookUpComboBox qui affiche le champ AFF_LIBELLE de ma table T_AFFINAGE.

    Nom : qualite.jpg
Affichages : 170
Taille : 17,6 Ko

  5. #5
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,

    En préambule, je n'emploierais pas des tables mais des query et autres datasets surtout dès que le volume de données va croitre...
    Mais revenons à votre problème. Voici une solution :
    1. Editer les champs de votre table T_QUALITE en double cliquant sur le composant en mode conception
    2. Ajouter les champs QUA_ID et QUA_LIBELLE. Modifier la valeur de la propriété DisplayWidth (80 par défaut)
    3. Ajouter un champ (bouton "Create new field...") de type lookup
    4. Renseigner les paramètres du lookup
      • Key fields : AFF_ID
      • DataSet : nom du composant TZTable pointant sur la table T_AFFINAGE
      • Lookup Keys : AFF_ID
      • Result fields : AFF_LIBELLE

      Modifier la valeur de la propriété DisplayWidth (80 par défaut)
    5. Dans votre DBGrid, ajoutez 3 colonnes liées via la propriété FieldName à QUA_ID, QUA_LIBELLE et AFF_LIBELLE de votre composant ZTable lié à T_QUALITE

    Compilez et exécutez le tout. Vous aurez votre liste déroulante lors de l'édition de la cellule...

    Tout ceci aurait pu aussi être fait par code...
    Philippe.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Merci Philippe pour votre réponse précise.

    Mon problème est donc résolu malgré quelques petits soucis suite à l'apparition d'une exception "Opération cannot be performed on an inactive dataset". En fait il faut déposer le composant TZTable associé à la table T_AFFINAGE avant celui associé à la table T_QUALITE.

    Voici ma solution.

    1. Edition des champs de la table T_AFFINAGE en double cliquant sur le composant en mode conception
    2. Ajout des champs AFF_ID et AFF_LIBELLE
    3. Edition des champs de la table T_QUALITE en double cliquant sur le composant en mode conception
    4. Ajout des champs QUA_ID, QUA_LIBELLE et AFF_ID
    5. Ajout d'un champ (bouton "Create new field...") de type lookup
    6. Renseignement des paramètres du lookup

      • Key fields : AFF_ID
      • DataSet : nom du composant TZTable pointant sur la table T_AFFINAGE
      • Lookup Keys : AFF_ID
      • Result fields : AFF_LIBELLE

    7. Dans le DBGrid, ajout de 3 colonnes liées via la propriété FieldName à QUA_ID, QUA_LIBELLE et AFF_LIBELLE du composant ZTable lié à T_QUALITE


    Problème résolu, merci.

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

Discussions similaires

  1. Problème de TDBGrid avec TMyQuery (MyDac)
    Par brotapz dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/05/2010, 17h07
  2. Comment Créer et se connecter a une base SQLite avec zeosLib
    Par Tardiff Jean-François dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/11/2007, 09h26
  3. [Lazarus] Jointures avec TSQLQuery et TDBGrid
    Par SkyWalker dans le forum Lazarus
    Réponses: 2
    Dernier message: 25/10/2007, 13h41
  4. Problème avec TDBGrid
    Par Furlaz dans le forum C++Builder
    Réponses: 28
    Dernier message: 15/06/2006, 09h05
  5. connexion delphi postgres avec zeoslib
    Par kayzer844 dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/04/2006, 00h01

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