Maitre/détail

Signaler
-
Messages postés
273
Date d'inscription
samedi 13 juin 2009
Statut
Membre
Dernière intervention
18 avril 2015
-
Salut tout le monde!
C'est mon premier contact
j'ai commencé de faire un petit programme, un débutant voila j'arrive pas relier trois tables un précision
** une table : les champs: code1, intitulé
1 :le champ code1 : 95,96,97,96....
2: le champ intitule : int1, int2,int3, ....
** 2 table : les champs code2, libelle
1: le champ code2: 950,951,952,....960,961,....970,971...
2: le champ libelle: lib1, bli2,lib3
** 3 table : les champs code3,Adresse
1: le champ code2: 9500,9510,5511,9520,9522,9529....9600,9641,...9710,9761...
2: le champ Adresse: Adr1, Adr2,Adr3
Voila, je voulais faire trois grilles
quand je clic sur le colonne de 1 grille exemple sue code : 95 la 2 grille filtrer automatiquement :950,951,952 ...... et la 3 grille 9500,9510,5511, 9520,9522,9529,.....

y'a quelqu'un m’aide de trouver la solution
merci.

3 réponses

Messages postés
273
Date d'inscription
samedi 13 juin 2009
Statut
Membre
Dernière intervention
18 avril 2015
10
Salut,
3 tQuery qry1, 2, 3 avec Autorefresh à true (au moins pour 2 et 3)
3 tDatasource ds1 2 3 respectivement sur les qry
3 tDbgrid idem respect... (pour visu et clicker)

qry1.sql = select * from table1
order by ...
qry2.datasource = ds1
qry2.sql = select * from table2
where left(code2, 2)= :code1
order by ...
qry3.datasource = ds2
qry3.sql = select * from table3
where left(code3,3) = code2
order by ...
Ca marche si les codes sont alpha
si des integer ce sera pour qry2
where code2 between :code1*10 and (:code1*10)-1
ou si pas de between:
where code2 >= :code1*10 and code2 < (:code1*10)-1

idem pour qry3
Bon courage, c'est facile

Salut
solilog
Salut
Merci beaucoup monsieur solilog de votre réponse et je rappel que j'ai trouve la solution Maitre/détail avec l'index secondaire et la saisie par DBGrid et il que je sélectionne la colonne kif kif ....
ma question comment je focus d'un colonne par edit veut dire le curseur dbgrid deplace suivant le contenant d'Edit..
Merci
Messages postés
273
Date d'inscription
samedi 13 juin 2009
Statut
Membre
Dernière intervention
18 avril 2015
10
salut,

dans l'évenement edti1change()
tablex.locate( ... );

function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions
): Boolean; virtual;

regarde la doc.

solilog