GRID VFP

Résolu
Imedbenmiled Messages postés 12 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 2 juin 2008 - 13 mai 2008 à 12:39
Imedbenmiled Messages postés 12 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 2 juin 2008 - 14 mai 2008 à 18:31
bonjour, je voudrai bien savoir comment forcer le curseur à revenir à
la colonne précédente dans un contrôle GRID (VFP)

6 réponses

Imedbenmiled Messages postés 12 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 2 juin 2008
14 mai 2008 à 18:31
je vous remercie infiniment. j'ai résolu le probleme comme suit :
valid (column3)
if  IndexSeek(MV.Com_G+MV.Com_T, .f., 'PL01', 1)
else
      MESSAGEBOX('Compte Inconnu ...')
      rejete= .t.
endif
afterRowColChange (grid)
if rejete
       rejete =.f.
    thisform.grid1.ActivateCell(thisform.grid1.ActiveRow,2)
endi   
3
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
13 mai 2008 à 12:59
Bonjour,

as-tu essayé en utilisant Grid.ActivateCell(nRow, nCol) ? Dans l'evenement AfterRowColChange, ça devrait te permettre ce que tu recherches...
0
Imedbenmiled Messages postés 12 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 2 juin 2008
13 mai 2008 à 20:14
bon jour, et merçi de m'avoir répondu. voila la source que j'ai écrit. et j'optient pas de résultat
if  seek(MV.Com_G+MV.Com_T,'pl01',1)
else
      *MESSAGEBOX('Compte Inconnu ...')
      thisform.grid1.ActivateCell(thisform.grid1.ActiveRow,2)
endif
en sachant, que je quis dans la colonne n° 3, le curseur passe toujours à la colonne n°4.
0
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
13 mai 2008 à 21:43
Alors j'aurais tendance à incriminer ta condition seek...

Est-ce que tu l'as vérifiée? Il est toujours très risqué d'utiliser le nIndexNumber en troisième paramètre, il vaut mieux se servir du TagName.
Et aussi il vaut mieux utiliser IndexSeek() que seek(), parceque tu peux passer .F. en paramètre pour ne pas déplacer le pointeur d'enregistrement.

Et surtout, quel est le but que tu cherches à atteindre? j'ai l'impression que tu veux vérifier que la saisie effectuée dans le textbox de la colonne 3 est correcte, pour ne pas passer en colonne 4 si elle est incorrecte. C'est ça? si c'est ce que tu veux faire, alors il te suffit de coder dans le valid() du textbox:
return IndexSeek(ta condition, .f., ton alias, ton tag d'index)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Imedbenmiled Messages postés 12 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 2 juin 2008
14 mai 2008 à 15:27
Bonjour, et merci
La condition si et correcte car elle affiche le message 'compte inconnu...', et j'ai placé le code dans l'evenement  valid en mettant "RETURN .F.", si la condition n'est pas verifié. seulement, je reste bloqué dans la colonne 3, alors que la faute se trouve peut etre dans la colonne 2. car la clé est composé du contenu de la colonne 2 et du contenu de la colonne 3("Com_G+Com_T").
0
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
14 mai 2008 à 16:21
OK, si tu veux pouvoir modifier les colonnes 2 ou 3, alors le valid du controle de la colonne3 ne doit pas renvoyer F.

Je ne suis pas certain qu'en testant dans le BeforeRowColChange tu arrives à faire ce que tu veux, j'ai l'impression d'une anomalie dans ton design.
Quelle est la source de données de ce grid?
0
Rejoignez-nous