Afichage des champs significatifs dans un DbGrid...?
meksam
Messages postés
40
Statut
Membre
-
nabil-bago Messages postés 289 Statut Membre -
nabil-bago Messages postés 289 Statut Membre -
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
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
A voir également:
- Afichage des champs significatifs dans un DbGrid...?
- Que signifie :) dans un message ? - Forum Réseaux sociaux
- Tu es un amour signification ✓ - Forum Loisirs / Divertissements
- Comme des enfants signification ✓ - Forum Musique / Radio / Clip
- Word mettre à jour tous les champs ✓ - Forum Word
- Word : Mise à jour des champs - Forum Word
3 réponses
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
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
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
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