Extraire la ligne dont le check box est selectionné d'un grid
engelina33
Messages postés19Date d'inscriptionsamedi 2 décembre 2006StatutMembreDernière intervention16 mars 2012
-
6 avril 2009 à 09:56
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 2013
-
7 avril 2009 à 23:21
bonjour,
je développe une application en VFP 9 et j'utilise SQL server comme un SGBD.
j'ai un probléme dans mon grid:
je crée une table foxpro et je la remplie à partir d'une table de ma base
puis je fais une correspondance entre la table foxpro et les champs de ma grid
le problème que j'ai une colonne qui est un check box et que je veux aprés le remplissage
de le grid avoir la ligne ou le numéros de la ligne que l'utilisateur a checké.
c'est à dire je veux savoir si il y'a un code qui permet d'accéder directement à la ligne ou comment parcourir le grid
le code est le suivant :
********créer la table
CREATE TABLE t_op (checke int , num_op int ,qte int )
SELECT t_op
ZAP
***********simple requete
***********remplir la table
DO WHILE NOT EOF('mon_curseur')
SELECT t_op
APPEND BLANK
replace t_op.checke WITH 0
replace t_op.num_op WITH mon_curseur.num_tirage
replace t_op.qte WITH mon_curseur.quantité
SELECT mon_curseur
SKIP 1
ENDDO
*************remplir le grid
thisform.grd_op.RecordSourcetype= 1
thisform.grd_op.RecordSource='t_op'
thisform.grd_op.column1.ControlSource='t_op.checke'
thisform.grd_op.column2.ControlSource='t_op.num_op'
thisform.grd_op.column3.ControlSource='t_op.qte'
SELECT t_op
GO top
thisform.Refresh
thisform.grd_op.Refresh
A voir également:
Extraire la ligne dont le check box est selectionné d'un grid
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 20131 6 avril 2009 à 12:15
Bonjour,
pour parcourir un grid en FoxPro, il suffit de parcourir son RecordSource.
Mais ton code est globalement incorrect, tu n'as pas du tout besoin de cette table t_op.
Comment est créé ce 'mon_curseur'? c'est une vue distante, un cursoradapter, ou le résultat d'un SQLexec?
c'est cet alias que tu dois prendre comme recordsource, tout simplement. Mais si tu veux pouvoir lier un checkbox à un champ, il sera plus simple de convertir le type de données en Booleen.
Je te conseille de créer une vue distante, puis de créer un form, et de faire un drag and drop de ta vue distante sur ton form. tu regardes le résultat, tu compares aux exemples qui sont fournis avec VFP, et ensuite tu adaptes à tes besoins.
PS: et oublie toutes ces vieilleries de DO WHILE NOT EOF(), et autres APPEND BLANK, qui ne te procureront que des complications inutiles.
engelina33
Messages postés19Date d'inscriptionsamedi 2 décembre 2006StatutMembreDernière intervention16 mars 2012 7 avril 2009 à 21:05
merci Michel, j'ai résolu le problème en parcourant le grid avec ce petit code:
SELECT mon_curseur
GO top
SELECT ma_table
GO top
DO WHILE NOT EOF('mon_curseur')
SELECT ma_table
replace mon_curseur.Qte WITH ma_table.variable
*****requete de mise à jour simple***
SELECT mon_curseur
SKIP 1
SELECT ma_table
SKIP 1