Parcours DBGrid

Résolu
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 - 19 mars 2008 à 12:02
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 - 19 mars 2008 à 16:33
Bonjour !

Avant tout chose, j'ai un DBgrid lié à un IBQuery et un IBUpdateQuery.

Mon soucis se passe au moment ou je parcours mon DBGrid dans une colonne afin de controler la saisie avant validation et mise a jour de la table.

Certaines cellules possede un picklist car on a la possibiliter de choisir une valeur. Le probleme se passe au niveau du controle de la cellule et quand il arrive dans une cellule possedant un picklist, la cellule controle bien la donnée selectionnée mais controle aussi la donnée en premiere position du picklist. De plus, on lieu de poursuivre les controle sur les autres cellules, il revient au debut de mon DBGrid et recommence le parcourir et cette fois jusqu'a la fin. Mais la valeur selectionnée est remplacé par la valeur du 1er item de mon picklist.

voici le code simplifier :

  query1.First;


  while not query1.Eof do
  begin


    Valeur := dbgrid1.Columns.Grid.Fields[9].AsString;  //Lecture du contenu de la 1er cellule


    if ((length(Valeur) <> 8) and (length(Valeur)) then
      //..... Suite controle




    query1.Next;  //Enreg suivant


  end;  //End while

3 réponses

grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
19 mars 2008 à 16:33
Voila maintenant tout semble fonctionné comme voulu, j'ai remplacé :

query1.Fields[9].AsString   par   dbgrid.DataSource.DataSet.FieldByName('NOM').AsString
et
query1.First   par   dbgrid.DataSource.DataSet.First;

et ainsi de suite....
1
cs_Shai Messages postés 50 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 21 décembre 2011
19 mars 2008 à 14:44
" je parcours mon DBGrid dans une colonne "

Euh, cela signifie quoi ?, on parcours un DataSet de ligne en ligne, puis on examine, les "colonnes" (champs) de celui-ci ...

Valeur := query1.Fields[9].AsString;

sinon, je préfère de loin un FieldByName, c'est beaucoup plus facile à maintenir, ou alors tu fais des constantes pour les index de colonne ...
0
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
19 mars 2008 à 15:24
Euh, en effet je me suis mal exprimer Oups... Je parcours en effet mon dbgrid ligne par ligne  en examinant le contenu d'une cellule. Si le contenu répond aux conditions alors il passe à la ligne suivante.

Par contre, certain contenu possede un picklist avec une liste de valeur. Lors du controle, il verifie bien la valeur selectionné mais verifi aussi la 1er donnée de la liste ... ?? Et au lieu de poursuivre vers la ligne suivante, il revient à la 1er ligne de mon dbgrid.... ??
0
Rejoignez-nous