Edicion en TWBrowse

Edicion en TWBrowse

Postby Francis » Wed Nov 15, 2006 11:40 pm

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
Francis
 
Posts: 112
Joined: Thu Aug 17, 2006 4:13 pm
Location: Peru

Postby R.F. » Thu Nov 16, 2006 12:02 am

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

Postby DanielPuente » Wed Nov 22, 2006 3:52 pm

Francis:

Code: Select all  Expand view  RUN
                    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
DanielPuente
 
Posts: 108
Joined: Sun Oct 09, 2005 6:12 pm
Location: Mar del Plata - Argentina


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 33 guests