Como solucionar lo siguiente: Se ha modificado la fila en curso despues de la edicion UPDATE&q
Publicado: Jue Mar 18, 2010 5:43 pm
Hola,
Estoy editando una columna de un browse usando un dataset con el
resultado de una consulta. y con la propiedad del browse lAutoSave:=
..T., en el evento OnPosEdit de la columna hago las operaciones para
calcular el resultado de otras columnas de la misma fila. y en el evento
OnExit realizo la suma de todas la columnas y filas.
si edito una celda no hay problema. PERO cuando paso a editar una celda
de diferente fila.. me manda el mensaje
"Se ha modificado la fila en curso despues de la edicion UPDATE"
y Si es cierto en el evento OnExit barro todas los registros del dataset
para calcular la suma total. entonces se modifica la ubicacion del
registro actual. que estoy editando. alguien que me pueda dar una luz.
ESTE EVENTO FUNCIONA BIEN...
//---------------------------------------------------------- --------------------
METHOD BrwDetalleColumnPostEdit( oSender, Value, lCanceled, nKey ) CLASS
TFormAbcCompras
// Metodo OnPosEdit de la columna CANTIDAD
LOCAL nSubTotal, nRecno, nDescuentos, nDescto1, nDescto2, nImpTotal
nSubTotal:= ::oParent:oSqlDetalle:cantidad * ::oParent:oSqlDetalle:costo
..
..
..
..
RETURN Nil
Pero en el evento OnExit de la columna hago lo siguiente para calcular
los Totales de la suma de todas las filas del browse
//---------------------------------------------------------- --------------------
METHOD BrwDetalleColumn4Exit( oSender, oGridEdit, oNextCtl ) CLASS
TFormAbcCompras
// Metodo OnExit de la Columna de CANTIDAD
LOCAL nSubTotal, nIva, nTotal, nRecno, nSuma, nDescuentos
nSubTotal:= 0
nIva := 0
nTotal:= 0
nSuma := 0
nDescuentos:= 0
nRecno:=::oParent:oSqlDetalle:Recno()
::oParent:oSqlDetalle:GoTop()
DO WHILE !::oParent:oSqlDetalle:EoF()
nSuma += ::oParent:oSqlDetalle:subtotal
nDescuentos+= ::oParent:oSqlDetalle:descuentos
nTotal += ::oParent:oSqlDetalle:total
::oParent:oSqlDetalle:Skip()
ENDDO
::oParent:oSqlDetalle:GoTo( nRecno )
RETURN Nil
Estoy editando una columna de un browse usando un dataset con el
resultado de una consulta. y con la propiedad del browse lAutoSave:=
..T., en el evento OnPosEdit de la columna hago las operaciones para
calcular el resultado de otras columnas de la misma fila. y en el evento
OnExit realizo la suma de todas la columnas y filas.
si edito una celda no hay problema. PERO cuando paso a editar una celda
de diferente fila.. me manda el mensaje
"Se ha modificado la fila en curso despues de la edicion UPDATE"
y Si es cierto en el evento OnExit barro todas los registros del dataset
para calcular la suma total. entonces se modifica la ubicacion del
registro actual. que estoy editando. alguien que me pueda dar una luz.
ESTE EVENTO FUNCIONA BIEN...
//---------------------------------------------------------- --------------------
METHOD BrwDetalleColumnPostEdit( oSender, Value, lCanceled, nKey ) CLASS
TFormAbcCompras
// Metodo OnPosEdit de la columna CANTIDAD
LOCAL nSubTotal, nRecno, nDescuentos, nDescto1, nDescto2, nImpTotal
nSubTotal:= ::oParent:oSqlDetalle:cantidad * ::oParent:oSqlDetalle:costo
..
..
..
..
RETURN Nil
Pero en el evento OnExit de la columna hago lo siguiente para calcular
los Totales de la suma de todas las filas del browse
//---------------------------------------------------------- --------------------
METHOD BrwDetalleColumn4Exit( oSender, oGridEdit, oNextCtl ) CLASS
TFormAbcCompras
// Metodo OnExit de la Columna de CANTIDAD
LOCAL nSubTotal, nIva, nTotal, nRecno, nSuma, nDescuentos
nSubTotal:= 0
nIva := 0
nTotal:= 0
nSuma := 0
nDescuentos:= 0
nRecno:=::oParent:oSqlDetalle:Recno()
::oParent:oSqlDetalle:GoTop()
DO WHILE !::oParent:oSqlDetalle:EoF()
nSuma += ::oParent:oSqlDetalle:subtotal
nDescuentos+= ::oParent:oSqlDetalle:descuentos
nTotal += ::oParent:oSqlDetalle:total
::oParent:oSqlDetalle:Skip()
ENDDO
::oParent:oSqlDetalle:GoTo( nRecno )
RETURN Nil