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

		  				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