Problema con checkbox grid

Tengo un formulario vfp9 con entorno mysql en donde se registra los cobros.
En donde tengo grid con checkbox que lo alimentaba por medio de una tabla temporal cunado lo utilizaba con base de datos vfp pero como ahora pretendo usar base de datos mysql. Tengo el problema: primero lo alimento a mi grid por medio de estas instrucciones que lo hace perfectamente.
thisformset.form1.grid2.RecordSource=""
vtexto="select mensualidad.men_facven,mensualidad.men_descri,"+;
   "mensualidad.men_log, mensualidad.men_cuota, mensualidad.men_venci as plazo,"+;        "mensualidad.men_saldo,mensualidad.men_desc from mensualidad,clientes where mensualidad.men_cli=?xclit and "+;
"clientes.cli_cod=mensualidad.men_cli and mensualidad.men_sit=1 and mensualidad.men_mensit=1 and "+;
       "mensualidad.men_log=0 order by mensualidad.men_facven,mensualidad.men_venci"
    IF(SQLEXEC(xcontrol,vtexto,"sql2"))>0
          SELECT sql2
          index on men_facven tag men_facven
           thisformset.form1.grid2.RecordSource="sql2"   //el nombre de mi tabla remota
           GO TOP
       thisform.grid2.Enabled= .t.
       Thisform.Grid2.Refresh()
       *thisform.grid2.Enabled=.t.
       thisform.CHECK1.Enabled= .f.
       thisform.command3.Enabled= .f.
       thisform.grid2.column7.text1.Enabled= .f.
       thisform.grid2.column3.text1.Enabled= .f.
       thisform.grid2.column5.text1.Enabled= .f.
       thisform.grid2.column1.text1.Enabled= .f.
       thisform.grid2.column6.CHECK1.Enabled= .t.
       thisform.grid2.column6.CHECK1.setfocus()
    ENDIF
Este funciona bien para cargar el grid. Como un cliente tiene 5 cuotas fijas por ejemplo quiero marcar si quiere pagar 2 cuotas al marcar el check para que realice devuelta otra consulta para ir sumando en un text y actualizando cada vez que marca el check dentro del grid. Lo que hice es esta instrucción en el checkbox al marcar en el click:
IF This.value=1
     SELECT sql2
     replace sql2.men_log with 1
         auxlog=1
     vtexto="select sql2.men_facven,sql2.men_descri,"+;
            "sql2.men_log, sql2.men_cuota, sql2.men_venci as plazo,"+;        
            "sql2.men_saldo,sql2.men_desc from sql2 where sql2.men_log=?auxlog order by sql2.men_facven"
      IF(SQLEXEC(xcontrol,vtexto, "sql4"))>0
          SELECT sql4
          SUM sql4.MEN_saldo TO THISFORMset.form1.tcompra.value
      ELSE
       WAIT WIND("NO HAY REGISTRO")
      ENDIF
  Endif
Cual seria el error. Desde ya gracias por su atención.

1 Respuesta

Respuesta
1
Pues así como lo veo, creo que estás mandando una consulta a MySQL para una tabla que está en Visual FoxPro, es decir, tu tabla "sql2" es un cursor de vfp, no una tabla de MySQL, y por tanto, para realizar una consulta sobre dicha tabla, no tienes que mandar el comando a MySQL, simplemente:
SELECT sql2
replace sql2.men_log with 1
auxlog=1
select ;
sql2.men_facven, ;
sql2.men_descri, ;
sql2.men_log, ;
sql2.men_cuota, ;
sql2.men_venci as plazo, ;
sql2.men_saldo, ;
sql2.men_desc, ;
from sql2 ;
where sql2.men_log = auxlog ;
order by sql2.men_facven ;
into cursor sql4
IF RECCOUNT("sql4") > 0
SUM sql4.MEN_saldo TO THISFORMset.form1.tcompra.value
ELSE
Wait wind("no hay registro")
Endif

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas