Edicion en TWBrowse

Post Reply
Francis
Posts: 112
Joined: Thu Aug 17, 2006 4:13 pm
Location: Peru

Edicion en TWBrowse

Post 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
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post 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
Saludos
R.F.
DanielPuente
Posts: 108
Joined: Sun Oct 09, 2005 6:12 pm
Location: Mar del Plata - Argentina
Contact:

Post by DanielPuente »

Francis:

Code: Select all | Expand

                    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,
Daniel Puente
Mar del Plata, Argentina
danielpuente@speedy.com.ar
puenteda@hotmail.com
Post Reply