FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper Edicion en TWBrowse
Posts: 112
Joined: Thu Aug 17, 2006 04:13 PM
Edicion en TWBrowse
Posted: 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

CiberSoft - Sistemas de Gestion
Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
Edicion en TWBrowse
Posted: 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.
Posts: 108
Joined: Sun Oct 09, 2005 06:12 PM
Edicion en TWBrowse
Posted: Wed Nov 22, 2006 03:52 PM
Francis:

		  				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

Continue the discussion