Page 1 of 1
Edicion en TWBrowse
Posted: Wed Nov 15, 2006 11:40 pm
by Francis
Hola a todos del foro
Como puedo editar una dbf con twbrowse?
Asi como el dbedit del clipper...Se que se usa el bEdit, lEdit...
pero no se como....
Un ejemplo por favor...
Revise los ejemplos del twbrowse, pero solo es para arrays y no para dbf
Uso FW2.0, Blinker4.0, WorkShop4.5, TDBF12k, TWBrowse y Clipper5.3
El fin es que quiero seleccionar cualquier DBF de una carpeta, y visualizarla con la opcion de poder modificar, borrar, etc...
Todo esto hacer en el propio campo de edicion como en los viejos tiempos del DBEdit.
Salu2
Posted: Thu Nov 16, 2006 12:02 am
by R.F.
Vete a la carpeta :
\FWxx\source\function
y busca el programa BROWSE.PRG ahi viene el codigo fuente de la funcion BROWSE() de FW que te dara una muy buena idea de como hacer las cosas
Posted: Wed Nov 22, 2006 3:52 pm
by DanielPuente
Francis:
Code: Select all
oBrwMov:lAutoEdit := .t.
oBrwMov:bKeyChar := {|nK| if( nK==VK_RETURN,oBrwMov:Edit(oBrwMov:nColAct,.t.),) }
oBrwMov:bEdit:= {|nCol, cBuffer, lFirstEdit| EditaCelda( @fCant,@fCantV,@fCantC,oBrwMov, nCol, cBuffer, .T.,cAlias ) }
//---------------------------------------------------------------------------------------------------------
STATIC Function EditaCelda( fCant , fCantV, fCantC,oLbx , nCol , cBuffer , lFirstEdit,cAlias )
Local uBuffer:=cBuffer,nColReal:= nCol,lContinue:=.f.,bValid,cSaldo:=0,xSaldo:=0,cDifSaldo:=0
Do Case
Case nCol = 5 .and. lFirstEdit
uBuffer:=(cAlias)->SALDO
cSaldo:=(cAlias)->SALDO
If lContinue:= oLbx:lEditCol( nColReal, @uBuffer, "@ZE 999999",bValid,,(nRgb(15,15,15),nRgb(255,255,255)))
IF uBuffer # cSaldo
IF MSGYESNO("El saldo ha sido cambiado,"+CRLF+CRLF+;
'El sistema generará un movimiento de ajuste de inventario automáticamente,'+CRLF+CRLF+;
'Confirma la operación ?','Atención')
xSaldo:=RECUNSALDO(1,(cAlias)->COD)
(cAlias)->SALDO:=uBuffer
cDifSaldo:=uBuffer - xSaldo
(CALIAS)->(DBCOMMIT())
oLbx:Refresh()
IF !empty((cAlias)->AT1) .or. !empty((cAlias)->AT2)
ELSE
if cDifSaldo # 0
AJUSINV((cAlias)->COD,cDifSaldo,(cAlias)->AT1,(cAlias)->AT1)
endif
ENDIF
ART->(DBSETORDER(1))
ART->(DBSETORDER(1))
IF ART->(DBSEEK(MOVART->MCOD,.F.))
IF ART->(DBRLOCK())
REPL ART->SALDO WITH ART->SALDO + MOVART->MCAN
ART->(DBUNLOCK())
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
EndCase
RETURN NIL
Saludos,