J'ai une CRDBGRID qui est lié à un datasource qui lui-même est lié à un query qui me ramène plus de 200 champs.
Lorsque je lance mon application aucun pb jusque là. Je récupère dans ma grille mes 200 champs qui sont formaté suivant des propriétés que j'ai défini au travers du code ( ONDRAWDATACELL ).
Mon problème est le suivant :
Je n'ai en fait besoin visuellement que de certaines de ces colonnes.
Jusque là, je chargeais l'ensemble de mes données puis je cachais certaines colonnes au moyen d'un boucle mais ce traitement est très long ( 3 secondes pour cacher 160-170 colonnes ).
J'ai essayé de créer uniquement les colonnes qui m'intéresse au moyen de :
où New_col est de type TColumn et Grid est de type TCrDbGrid
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2New_Col := Grid.Columns.Add; New_Col.FieldName := 'CLIENT';
mais je me retrouve avec une grille ayant ma colonne créée mais pas mes données et le formatage souhaité ( je ne passe plus dans monONDRAWDATACELL ). Si je met ces deux lignes en commentaire tout redevient ok mais j'ai mes 200 colonnes.
Est-ce que quelqu'un aurait une idée ?
Est-ce possible ( et rapide ) de faire le raisonnement inverse à savoir de détruire certaine colonne ? J'ai essayé grid.Columns.Delete(i) où i est le n° de ma colonne mais rien ne se passe, j'ai toujours mes 200 colonnes.
Help, please.
NB : J'ai besoin de concerver les données cachées car elles sont utiles dans d'autres traitements.
Partager