sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 2015
-
4 août 2006 à 17:08
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 2015
-
9 août 2006 à 09:52
Bonjour,
J'ai cherché sur le forum et sur google sans succès... alors je me permets de vous poser la question.
Comment peut-on piocher directement dans un dbgrid une valeur pour un champ qui viendrait d'une autre table ? J'ai essayé sans succès les propriétés lookupdataset et compagnie... mais c'est pas évident. En plus l'aide de delphi me semble un peu dur à suivre et est totalement dénué d'exemple.
Pourriez-vous m'expliquer brièvement comment ça marche ? (et si ça marche sur firebird, au passage..)
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 8 août 2006 à 17:27
Il suffit de créer un Lookup field dans ta table.
Disons que tu as une table produits et une table avec les lignes de factures (linfac).
Pour insérer un produit dans ta table linfac sur une ligne de DBGrid gràce à une combobox automatique, créer un lookup field dans ta table linfac (LookDescrProduit), pour cela tu dois créer un champ avec le code produit ...
Ensuite dans la DBGrid, tu insères le champ LookDescrProduit dans une colonne. Cette colonne est automatiquement une ComboBox ...
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 5 août 2006 à 16:40
Salut Simon,
Je n'ai jamais employé lookupdataset et les champs de recherche.
Mais il y a un moyen très simple dans un DBgrid d'aller chercher une valeur dans une autre table :
il te faut pour cela voir la propriété Columns du DBGrid : tu ajoutes autant de colonnes que de champs souhaités visibles.
Supposons que la 1° colonne soit le champ 'CODE' et que les valeurs soient obligatoirement des valeurs contenues dans une Table Codes.
Propriété ButtonStyle de la colonne = cbsEllipsis.
Tu crées un événement OnEditButtonClick du DBGrid dans lequel tu peux par exemple :
- ouvrir une fenêtre modale contenant une grille de la Table Codes.
- sélection d'une valeur par double click
- fermeture de la fenêtre et attribution de la valeur sélectionnée.
C'est ainsi que font pas mal de logiciels de gestion que j'utilises. Cela te laisse toute liberté, p.ex. de filtrer ta base Codes selon certains critères.
Remarque : ceci n'interdit pas de mettre une valeur non contenue dans la Table Codes. Donc à toi de vérifier...
Ou propriété ButtonStyle = cbsAuto.
Dans ce cas, tu auras accès à un combobox : préalablement tu dois remplir les Strings de PickList en fonctions des valeurs de ta base Codes (ou alors associer la colonne du DBGrid à un champ recherche).