esto es algo que tengo, pero no me siento a gusto con el codigo, podria ayudarme con esto, les agradeceria mucho su inestimable ayuda
- Code: Select all Expand view
FUNCTION ProgramacionP_Grabar()
LOCAL lGrabado := FALSE
LOCAL oError
//TODO:validar datos
InitTrans()
TRY
IF CTRL->( DbLockRec() ) CLIE->( DbLockRec() ) .and. PRES->( DbApndRec() ) .and. MOVI->( DbApndRec() )
CTRL->CONT_PRES += 1
CLIE->SALDO_ACT += oRecSol:MONTO_PRES
MOVI->NUM_PRES := oRecSol:NUM_PRES
MOVI->NUM_CLIE := oRecSol:NUM_CLIE
MOVI->FECHA := oRecSol:FECHA_DESE
MOVI->DEBE := oRecSol:MONTO_PRES
MOVI->SALDO := oRecSol:MONTO_PRES
PRES->NUM_PRES := oRecSol:NUM_PRES
PRES->NUM_CLIE := oRecSol:NUM_CLIE
PRES->TIPO_PRES := oRecSol:TIPO_PRES
PRES->FECHA_SOLI := oRecSol:FECHA_SOLI
PRES->FECHA_APRO := oRecSol:FECHA_APRO
PRES->FECHA_ENTR := oRecSol:FECHA_ENTR //?
PRES->MONTO_SOLI := oRecSol:MONTO_SOLI
PRES->MONTO_APRO := oRecSol:MONTO_APRO
PRES->MONTO_PRES := oRecSol:MONTO_PRES
PRES->MONTO_ENTR := oRecSol:MONTO_ENTR
PRES->INTE_TASA := oRecSol:INTE_TASA
PRES->INTE_MONT := oRecSol:INTE_MONTO
PRES->MANT_TASA := oRecSol:MANT_TASA
PRES->MANT_MONT := oRecSol:MANT_MONT
PRES->DESE_TASA := oRecSol:DESE_TASA
PRES->DESE_MONT := oRecSol:DESE_MONT
PRES->DED_INSGAR := oRecSol:DED_INSGAR
PRES->DED_ESCPUB := oRecSol:DED_ESCPUB
PRES->DED_GASLEG := oRecSol:DED_GASLEG
PRES->DED_CAMFIA := oRecSol:DED_CAMFIA
PRES->DED_ATRFIA := oRecSol:DED_ATRFIA
PRES->DED_RECMOR := oRecSol:DED_RECMOR
PRES->FECHA_INI := oRecSol:FECHA_INI
PRES->FECHA_FIN := oRecSol:FECHA_FIN
PRES->PLAZO := oRecSol:PLAZO_SOLI
PRES->NUM_CUOTAS := oRecSol:NUM_CUOTAS
PRES->VAL_CUOTA := oRecSol:VAL_CUOTA
PRES->ENTREGADO := TRUE //?
PRES->PAGADO := FALSE
PRES->SALDO := ( oRecSol:NUM_CUOTAS * oRecSol:VAL_CUOTA )
PRES->( ADSSetEmptyValue() )
DBCommitAll()
DBUnlockAll()
lGrabado := TRUE
ELSE
DBUnlockAll()
ENDIF
EndTrans()
CATCH oError
RollTrans()
ShowError( oError )
END
IF lGrabado
oBrw:Refresh()
SysRefresh()
ENDIF
RETURN lGrabado
la verdad me parece incorrecta, que pasaria si el primer append es correcto y el segundo append falla?
no seria mejor algo asi:
- Code: Select all Expand view
ELSE
//aca hacer que el catch procese el error (no se como)
DBUnlockAll()
ENDIF
EndTrans()
CATCH oError
RollTrans()
ShowError( oError )
END
salu2