Afichage des champs significatifs dans un DbGrid...?

Fermé
meksam Messages postés 37 Date d'inscription mardi 8 juillet 2014 Statut Membre Dernière intervention 3 décembre 2018 - Modifié par meksam le 29/11/2015 à 15:52
nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021 - 15 déc. 2015 à 12:38
Bonjour;

Mon MCD est le suivant :

Table 1 : TArchive (Id_arch, libelle_arch, rayonnage, etage_ray, num_boite_arch, date_archivage, duree_vie, scan_arch, observation, id_type_arch, id_dir, id_salle, id_etat_arch, id_langue_arch)

Table 2 : T Directions (id_dir, libelle_dir)

Table 3 : TSalles_archives (id_salle, num_salle_arch, surface_salle, etage_salle)

Table 4 : TEtat_arch (id_etat_arch, etat_arch)

Table 5 : TLangue_ arch (id_langue_arch, langue_arch)

Table 6 : Ttypes_archives (id_type_arch, des_type_arch)

Bon, j'ai pu afficher dans un DBGRID tout les champs de la table TArchive, mais au lieu d'afficher dans cette table les clés étrangers je veux qu’elle m'affiche pour chacune un champ significatif...............par example:

Au lieu de id_type_arch je veux avoir des_type_arch
Au lieu de id_dir je veux avoir libelle_dir
...................
.....................
......................


Alors comment forcer mon DBGRID pour afficher ce que je veux?

Et merci

3 réponses

Profil bloqué
29 nov. 2015 à 18:32
Salut

Du fait qu'une grille orientée données est liée à un seul Data Source qui connecte la grille à une seule Table ou un seul Query, tu ne peux pas appliquer une requête portant sur plus d'une Tables avec un Query lié à une seule Table.

Je pense que tu dois replonger à bien manipuler les données sur une seule Table, cela t'aiderai à affronter Les Tables Maitres Détails, c'est avec une table maitre détail (Master Table) que tu arrives à effectuer des requêtes sur plusieurs tables avec un seul Query et une seule Grille, d'ou ton problème.

Bon courage
0
meksam Messages postés 37 Date d'inscription mardi 8 juillet 2014 Statut Membre Dernière intervention 3 décembre 2018 2
6 déc. 2015 à 15:29
Bonjour,

Merci metarefsalem pour la réponce;

j'ai fait ça ( code pour mon boutton Filtrer)

begin
TdbQuery1.close;
TdbQuery1.UnPrepare;
TdbQuery1.SQL.text:='Select a.libelle_arch, a.rayonnage, a.etage_ray, a.num_boite_arch, a.date_archivage, a.duree_vie, a.scan_arch, a.type_interet,';
TdbQuery1.SQL.text:=TdbQuery1.SQL.text+ 'D.libelle_dir, E.etat_arch, L.langue_doc, T.des_type_arch, S.num_salle_arch, S.surface_salle, S.etage_salle from archive a';
TdbQuery1.SQL.text:=TdbQuery1.SQL.text+ 'LEFT JOIN directions D ON a.id_dir=D.id_dir LEFT JOIN etat_arch E ON a.id_etat_arch=E.id_etat_arch LEFT JOIN Langue_docum L';
TdbQuery1.SQL.text:=TdbQuery1.SQL.text+ 'ON a.id_langue_arch =L.id_langue_arch LEFT JOIN salles_archives S ON a.id_salle=S.id_salle LEFT JOIN types_archives T ON a.id_type_arch=T.id_type_arch';
TdbQuery1.SQL.Add('WHERE 1=1');
If length(Edit2.text)>0 then TdbQuery1.sql.add('AND rayonnage=:ray');
TdbQuery1.Prepare;
If length(Edit2.text)>0 then TdbQuery1.paramByName('ray').asString:=Edit2.text;
TdbQuery1.Open;
If length(Edit3.text)>0 then TdbQuery1.sql.add('AND num_boite_arch=:numb');
TdbQuery1.Prepare;
If length(Edit3.text)>0 then TdbQuery1.paramByName('numb').asString:=Edit3.text;
TdbQuery1.Open;
end;


Mais Mon DBGRID ne change pas, mème pas une erreur !
Qu'est-ce que je dois faire pour résoudre mon probléme... et merci
0
nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021 13
15 déc. 2015 à 12:38
Tres facile :)
apres avoir lié le DBGrid avec le DataSource, un double click sur le DBGrid,
une petite fenetre apparait, click droit > ajouter tous les champs , puis tu selectionne un champ et tu change le Caption
^^
0