Code: Select all | Expand
cQueryct := "SELECT * FROM ctacte where ncli = "+ alltrim(str(oCta:ncli)) + " ORDER by fecha"
oQry :=oMysql:Query( cQueryct)
oQry:gotop()
do
nImporte := 0
if oQry:tipo = "1"
lTipo := .t.
nsaldo += oQry:importe
else
lTipo := .f.
nsaldo -= oQry:importe
endif
aadd(oCta:adet,{oQry:fecha, (oQry:descripcion + oQry:numero),lTipo, oQry:importe, nsaldo, oQry:pventa, oQry:numero,oQry:tipodoc})
oQry:skip()
until oQry:eof()
Y se muestra
Code: Select all | Expand
REDEFINE LISTBOX oBrw fields "" ID 101 of oDlg UPDATE ON DBLCLICK detacli(oMysql,oBrw,oBrw:nAt,lcliente, oDlg )
oBrw:bline:= {|nAt| nAt:= oBrw:nAt,;
iif(len(oCta:adet ) < 1 .or. nAt > len(oCta:adet), array(5),;
{transform(oCta:adet[nAt,1],"@d "),oCta:adet[nAt,2] ,;
iif(oCta:aDet[nAt,3], transform(oCta:aDet[nAt,4],"@e 999,999.99"),""),; //facturas
iif(oCta:aDet[nAt,3],"", transform(oCta:aDet[nAt,4],"@e 999,999.99")),; //pagos
transform(oCta:aDet[nAt,5],"@e 999,999.99") } ) }
oBrw:setarray(oCta:adet)
oBrw:acolsizes := {80,158,115,115,120}
oBrw:aheaders := { "FECHA","DETALLE","DEBE","PAGOS","SALDO"}
oBrw:ajustify := {0,0,1,1,1}
oBrw:aHjustify := {2,2,2,2,2}
oBrw:lAdjlastcol:= .t.
oBrw:nLineStyle := 3
REDEFINE BUTTON oNbut[4] ID 106 ACTION borrar(oMysql, lcliente,oCta,oBrw )
Y como veran un boton para borrar que va a esta funcion
Code: Select all | Expand
STATIC FUNCTION borrar(oMysql, lcliente,oCta,oBrw)
if MsgYesNo("¿Desea borrar este registro y todos los asociados?","Aviso del sistema")
oQry:goto(oBrw:nAt)
oQry:delete()
oQry:refresh()
ADel( oCta:aDet,oBrw:nAt )
ASize( oCta:aDet, Len( oCta:aDet ) - 1 )
corregir(oCta:adet)
oBrw:gotop()
oBrw:gobottom()
oBrw:refresh()
endif
RETURN NIL
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Si borro el último registro no hay problema lo elimina sin mas de la base de datos, pero si la elección es algún registro intermedio no la afecta, ni la modifica en ninguno de sus registros.
Otra consulta ¿ es mejor hacer una sentencia en mysql para mostrar la cuenta corriente ó hacerlo como lo he planteado?
Gracias por su atención
Luis