Salut,
a tous,
j'ai un tableau d'objet
Persone a les attribu suivant:Code:
1
2 var LSTPerson array of TPerson;
Je veux faire afficher le contenu du tableau ds la DBGrid.Code:
1
2
3
4 ID Nom Prenom
y a til un moyen de faire cela
cordialement.
Version imprimable
Salut,
a tous,
j'ai un tableau d'objet
Persone a les attribu suivant:Code:
1
2 var LSTPerson array of TPerson;
Je veux faire afficher le contenu du tableau ds la DBGrid.Code:
1
2
3
4 ID Nom Prenom
y a til un moyen de faire cela
cordialement.
Oui,
bascule ton tableau dans ClientDataset
puis utilise un Datasource pour le lier à ta DBGrid.
a+
Merci
mais comment un petit exemple. me fera du bien :oops:
tres cordialement.
Salut,
Est-ce que c'est vraiment dans un TDbGrid que tu veux afficher tes records ?
TDBGrid est un composant pour afficher les éléments d'une table/requête d'une base de données.
Un TDBGrid ne contient pas de données.
Par contre un TStringGrid, pourrait afficher tes record, sans utilisation de base de données ?
Et dans ce cas, tout d'abord :f1: sur TStringGrid ;)
puis si tu bloques sur un point précis pas de problèmes pour tes questions :)
J y avais pense mais je souhaite le faire avec une DBGrid. pour d'autre raison.Citation:
TDBGrid est un composant pour afficher les éléments d'une table/requête d'une base de données.
Un TDBGrid ne contient pas de données.
Par contre un TStringGrid, pourrait afficher tes record, sans utilisation de base de données ?
exemple : le composant DbGrid que j'utilise peut etre exporter vers Word ou Excel.
Si vous pouvez m'indiquez un composant stringgrid ki possede cette particularite
alors je pourrai utiliser la stringgrid pour afficher mes records.
cordialement.
Salut
Je ne voudrais pas te décevoir, mais je vois pas très bien comment tu vas alimenter ton DBGrid avec un array of TPersonne. ??Citation:
Envoyé par toure32
Un DBGrid est un contrôle orienté données qui attend que tu lui fournisse un DataSource.
Donc la soluce c'est le StringGrid. Quant à l'exporter, euh, j'sais pô !!
@+
on peut exporter vers excel autant avec un TDBGrid qu'avec un TStringGrid.
Il faut comprendre que l'utilité entre les 2 n'est pas du tout la même, et le dév. derriere non plus !
si c'est juste pour exporter tes records vers Excel, tu n'as besoin ni de l'un, ni de l'autre, mais de ceci.
Ouvrir Excel
Ventiler tes record
Ecrire dans le fichier Excel
Excusez-moi j'étais sur l'autre ligne.
Alors, si on peut utiliser une TDBGrid et un TClientDaset.
Le TClientDaset n'est pas forcément liée à une base de donnée via un provider.
Comment fait-on ?
1 - On déclare la structure du clientdataset via
clientdataset.FieldDefs.AddFieldDef
2 - Puis on crée le clientdataset par
clientdataset.createdataset
3 - puis on ajoute les données
clientdataset.insert;
clientdataset.fields[0].asstring := LSTPerson[0].Id;
etc....
4 - Enfin on lie le tout
Datasource.dataset := clientdataset;
DbGrid.Datasource := Datasource;
Je fais un petit test pour voir.
a9
J'essai et je vous tiens informe
Voici une info que j'eu posté sur le forum :
Ca correspond pile-poil à ton besoin ;)Citation:
Sinon, j'aime bien le composant EzArrayDataSet (EzSpecials) :
http://www.kever.com/index.htm?strUr...2Fproducts.htm
celà permet d'avoir n'importe quoi comme support de base de données (un fichier binaire/un fichier texte/des données en mémoire/la base de registre).
Ca vaut vraiment le coup si tu as trois tables toutes simples qui se battent en duel.
Le composant est gratuit et est proposé avec les sources.
Même si vous ne l'utilisez pas pour ce projet, vous en trouverez à coup sur une utilité indéniable ;)
Bien voilà le petit bout de code que tu as déjà dû faire :
a+Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 type TForm1 = class(TForm) DataSource1: TDataSource; DBGrid1: TDBGrid; ClientDataSet1: TClientDataSet; procedure FormCreate(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; TPerson = record ID : integer; Nom : string; Prenom : string; end; var Form1: TForm1; var LSTPerson : array of TPerson; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); Var i : integer; begin SetLength(LSTPerson,3); LSTPerson[0].id := 0; LSTPerson[0].Nom := 'Moi'; LSTPerson[0].Prenom := 'Je'; LSTPerson[1].id := 1; LSTPerson[1].Nom := 'Toi'; LSTPerson[1].Prenom := 'Tu'; LSTPerson[2].id := 2; LSTPerson[2].Nom := 'Nous'; LSTPerson[2].Prenom := 'Nous'; ClientDataSet1.Close; with ClientDataSet1 do begin with FieldDefs.AddFieldDef do begin DataType := ftInteger; Name := 'ID'; end; with FieldDefs.AddFieldDef do begin DataType := ftString; Size := 20; Name := 'Nom'; end; with FieldDefs.AddFieldDef do begin DataType := ftString; Size := 20; Name := 'Prenom'; end; end; ClientDataSet1.CreateDataSet; For i:=low(LSTPerson) to high(LSTPerson) do begin ClientDataSet1.Insert; ClientDataSet1.FieldbyName('Id').value := LSTPerson[i].ID; ClientDataSet1.FieldbyName('Nom').value := LSTPerson[i].Nom; ClientDataSet1.FieldbyName('Prenom').value := LSTPerson[i].Prenom; ClientDataSet1.Post; end; Datasource1.DataSet := ClientDataSet1; dbgrid1.DataSource := DataSource1; end;