TDataGrid - Exemples
| TDataGrid = class (TObject) | Interface de TDataGrid | Exemples de TDataGrid |
Voici un exemple basique de création et d'utilisation d'une instance de TDataGrid:
var grille := new TDataGrid;
// déclaration des colonnes :
grille.AddColumn('NOM', cssText);
grille.AddColumn('REF', cssText);
grille.AddColumn('DATE', cssDateTime);
grille.AddColumn('MONTANT', cssNumeric);
// initialisation et remplissage de la première ligne
grille.Append;
grille.CellData[0] := 'Transports Dubois';
grille.CellData[1] := '0028';
grille.CellData[2] := '23/07/2007';
grille.CellData[3] := '1500';
grille.Append;
grille['NOM'] := 'Menuiseries Duchesnes';
grille['REF'] := 'AB123';
grille['DATE'] := '23/07/2007';
grille['MONTANT'] := '300';
grille.Append;
grille.RowCommaText := '"Transports Dubois",0030,24/07/2007,200';
// On indique qu'on souhaite que la colonne n°2 soit la première dans l'extraction
grille.ColumnRank[2]:=0;
// On enregistre les données dans un fichier CSV
SaveStringToTextFile('C:\Temp\MonFichier.csv', grille.AsCSV);
// déclaration des colonnes :
grille.AddColumn('NOM', cssText);
grille.AddColumn('REF', cssText);
grille.AddColumn('DATE', cssDateTime);
grille.AddColumn('MONTANT', cssNumeric);
// initialisation et remplissage de la première ligne
grille.Append;
grille.CellData[0] := 'Transports Dubois';
grille.CellData[1] := '0028';
grille.CellData[2] := '23/07/2007';
grille.CellData[3] := '1500';
grille.Append;
grille['NOM'] := 'Menuiseries Duchesnes';
grille['REF'] := 'AB123';
grille['DATE'] := '23/07/2007';
grille['MONTANT'] := '300';
grille.Append;
grille.RowCommaText := '"Transports Dubois",0030,24/07/2007,200';
// On indique qu'on souhaite que la colonne n°2 soit la première dans l'extraction
grille.ColumnRank[2]:=0;
// On enregistre les données dans un fichier CSV
SaveStringToTextFile('C:\Temp\MonFichier.csv', grille.AsCSV);
Voici un exemple avancé d'utilisation d'une instance de TDataGrid
Avant de regarder ce programme, assurez-vous de bien comprendre les notions de type ainsi que les fonctions FloatToStr et StrToFloat.
var grille := new TDataGrid;
// initialisation et remplissage à partir d'un CSV
grille.LoadFromCSV(#'NOM,REF,DATE,MONTANT
"Transports Dubois",0028,23/07/2007,1500
"Menuiseries Duchesnes",AB123,23/07/2007,300
"Transports Dubois",0030,24/07/2007,200',
',', '"');
// on trie les noms par ordre alphabétique décroissant,
// puis par ordre de montant décroissant
grille.Sort('MONTANT', csdDescending);
grille.Sort('NOM', csdAscending);
// on majore toutes les commandes des Transports Dubois de 10%
grille.First;
while grille.Find('NOM', 'Transports Dubois') do begin
grille.CellData[3] := FloatToStr( StrToFloat(grille.CellData[3]) * 1.1 );
grille.Next;
end;
// affichage du résultat
grille.First;
while not grille.EOF do begin
InformationDlg(grille.RowCommaText);
grille.Next;
end;
// initialisation et remplissage à partir d'un CSV
grille.LoadFromCSV(#'NOM,REF,DATE,MONTANT
"Transports Dubois",0028,23/07/2007,1500
"Menuiseries Duchesnes",AB123,23/07/2007,300
"Transports Dubois",0030,24/07/2007,200',
',', '"');
// on trie les noms par ordre alphabétique décroissant,
// puis par ordre de montant décroissant
grille.Sort('MONTANT', csdDescending);
grille.Sort('NOM', csdAscending);
// on majore toutes les commandes des Transports Dubois de 10%
grille.First;
while grille.Find('NOM', 'Transports Dubois') do begin
grille.CellData[3] := FloatToStr( StrToFloat(grille.CellData[3]) * 1.1 );
grille.Next;
end;
// affichage du résultat
grille.First;
while not grille.EOF do begin
InformationDlg(grille.RowCommaText);
grille.Next;
end;
En Qubes 6.2, voici un exemple de définition de DataGrid qui utilise un type énuméré pour faire un code performant qui gère les erreurs à la compilation et qui reste lisible :
type DGColumns = enum(Col1, Col2, Col3);
// Ajout des colonnes
var dg := TDataGrid.Create;
for var colIdx in DGColumns do
dg.AddColumn(colIdx.Name, cssNone);
// Ajout de champs par index
dg.Append;
dg.CellData[DGColumns.Col1] := 'toto';
dg.CellData[DGColumns.Col2] := 'tata';
dg.CellData[DGColumns.Col3] := 'titi';
PrintLn(dg.AsCSV);
// Ajout des colonnes
var dg := TDataGrid.Create;
for var colIdx in DGColumns do
dg.AddColumn(colIdx.Name, cssNone);
// Ajout de champs par index
dg.Append;
dg.CellData[DGColumns.Col1] := 'toto';
dg.CellData[DGColumns.Col2] := 'tata';
dg.CellData[DGColumns.Col3] := 'titi';
PrintLn(dg.AsCSV);