Accueil > > > CONVERTIR DBGRID EN STRINGGRID
CONVERTIR DBGRID EN STRINGGRID
Information sur la source
Description
Une petite procedure qui permet de convertir un DBgrid en stringgrid. Très pratique pour ceux qui ne veulent pas s'embêter à utiliser le composant DBgrid qui est très contraignant et peu modulable.
Source
- procedure dbgridtostringgrid(db:tdbgrid;str:tstringgrid);
-
- var ta:tdataset; // dataset est le lien de donné de la base du dbgrid
- i,j:integer; // compteur de parcours
-
- begin
- ta:=db.DataSource.DataSet; //on récupère le dataset dans ta
- if ta.Filtered then //on place le pointer sur le premier élément du filtre si le dbgrid est filtré
- ta.FindFirst
- else
- ta.First; //sinon on place le pointer sur le premier élément
- j:=0; //initialisation de j
- str.RowCount:=1;
- str.FixedCols:=0; //nombre de colonne fixe (gris)
- str.ColCount:=db.Columns.Count; //on ajuste le nombre de colonne du stringgrid en fonction du dbgrid
- for i:=0 to db.Columns.Count-1 do //on parcours toutes les colonnes de la première ligne pour ajuster la ligne fixe
- begin
- str.Cells[i,0]:=db.Columns.Items[i].FieldName;
- end;
- while not ta.Eof do //tant que l'on a pas atteint la fin des données
- begin
- j:=j+1; //on incrémente le conteur de ligne (pour le stringgrid)
- str.RowCount:=str.RowCount+1; //on ajoute une ligne dans le stringgrid
- for i:=0 to db.Columns.Count-1 do //pour toutes les colonnes on recopie les données
- str.Cells[i,j]:=db.Columns.Grid.Fields[i].AsString;
- ta.Next; //on passe à la prochaine ligne de la source de données
- end;
- if str.RowCount>1 then str.FixedRows:=1; //si il y a au moins une ligne, la première est fixe
- end;
procedure dbgridtostringgrid(db:tdbgrid;str:tstringgrid);
var ta:tdataset; // dataset est le lien de donné de la base du dbgrid
i,j:integer; // compteur de parcours
begin
ta:=db.DataSource.DataSet; //on récupère le dataset dans ta
if ta.Filtered then //on place le pointer sur le premier élément du filtre si le dbgrid est filtré
ta.FindFirst
else
ta.First; //sinon on place le pointer sur le premier élément
j:=0; //initialisation de j
str.RowCount:=1;
str.FixedCols:=0; //nombre de colonne fixe (gris)
str.ColCount:=db.Columns.Count; //on ajuste le nombre de colonne du stringgrid en fonction du dbgrid
for i:=0 to db.Columns.Count-1 do //on parcours toutes les colonnes de la première ligne pour ajuster la ligne fixe
begin
str.Cells[i,0]:=db.Columns.Items[i].FieldName;
end;
while not ta.Eof do //tant que l'on a pas atteint la fin des données
begin
j:=j+1; //on incrémente le conteur de ligne (pour le stringgrid)
str.RowCount:=str.RowCount+1; //on ajoute une ligne dans le stringgrid
for i:=0 to db.Columns.Count-1 do //pour toutes les colonnes on recopie les données
str.Cells[i,j]:=db.Columns.Grid.Fields[i].AsString;
ta.Next; //on passe à la prochaine ligne de la source de données
end;
if str.RowCount>1 then str.FixedRows:=1; //si il y a au moins une ligne, la première est fixe
end;
Conclusion
On peut rajouter un traitement pour le cas où il n'y a aucune ligne dans le dbgrid mais une exception doit être levé déjà bien avant.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Réactualiser les données avec ADO ? [ par Bruno ]
Bonjour à tous,J'utilise les composants ADO pour me connecter sur une base Access.Un DataSet ADO pointe sur une table de plus de 10000 enregistrements
stringgrid et sql [ par Rankin ]
Salut, j'ai encore un problème. Je souhaite afficher le résultat d'une requete SQL dans une stringgrid, j'ai réussi à le faire, mais maintenant si je
Problème de touche avec une TStringGrid.... [ par OrsE ]
Salut tout le monde, J'ai un petit soucis avec ma StringGrid. En effet j'ai un system avec ma StringGrid qui me permet de faire un drag ans drop des c
DBGrid et Drag&Drop [ par katharos ]
Bonjour à tous, J'ai une petite question sur laquelle je n'arrive pas à trouver de réponse. Sur une Form j'ai 2 DBGrid et 1 StringGrid. Je peut déplac
picklist dans une stringgrid [ par laska972 ]
bonjour à tousje voudrais mettre une liste déroulante dans une colonne de ma stringgrid comme les picklist dans les dbgrid mais je ne veux pas utilise
Alterner les couleurs dans DBGrid, erreur à la compil,mais pas tout le temps [ par DGPat ]
Bonjour à tous,Voilà sur plusieurs fiches, j'alterne les couleurs d'un DBGrid, ca fonctionne, mais maintenant quans je crée une fiche e
Firebird UIB dbgrid multiselect [ par informatixo ]
Bonsoir le forum, Je rencontre un problème avec le composant TUIBDataSet de la suite UIB 2.5 et le composant TDBGrid. Je précise pour qu'il n'y ait
Séléctionner une ligne dans DBGRID [ par sosososo ]
Bonjour,J'ai un problème pour seléctionner une ligne dans DBGRID que je viens d'insérer dans la base (CAD: Quand je fais le refresh dans dataset/dbgri
colorié une cellule d'un DBgrid ou StringGrid [ par airhik7 ]
Comment fait-on pour colorié une cellule d'un DBgrid ou stringgrid lorsque l'on clique dessus.C super urgent merci d'avance
Retour à la ligne dans une cellule de TStringGrid [ par Drack92 ]
Salutations,Je suis en pleine galère depuis pas mal de temps car via une requete SQL, j'insère le contenu d'un champ Memo d'une base Access dans un St
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|