FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper Favor Necesito Orientacion Urgente
Posts: 117
Joined: Sun Oct 01, 2006 11:39 PM

Favor Necesito Orientacion Urgente

Posted: Wed Jan 17, 2007 02:58 PM

Hola Amigos:

Tengo que solucionar un problema urgente y se trata de lo siguiente:

. Debo tener un Browse en pantalla que me permita ingresar lineas de largo de 75, la cual llevara una columna con un correlativo mas esta columna de largo de 75, que permitira ingresar un escrito, esta debera permitir Agregar lineas, como eliminar o insertar en alguna parte del parrafo, quiero manejarlo en una base de datos, con los dos campos antes descrito mas un folio que identifica a una persona.

Se puede hacer de esta forma ?, alguien tiene un codigo parecido para poder ver.

Desde ya se los agradezco,

Miguel Rivera

Posts: 108
Joined: Sun Oct 09, 2005 06:12 PM

Favor Necesito Orientacion Urgente

Posted: Thu Jan 18, 2007 01:03 PM
Miguel:

Si, claro que se puede, tendrias que utilizar una fuente de ancho fijo, como courier new. Al momento de editar los renglones podes utilizar gets con el tamaño justo para que entren los 75 caracteres con esa fuente de ancho fijo si no son muchos renglones y sino un get memo. Luego de editar si estas en un alta haces el append en campos caracter de 75 o un campo memo, y si estas editando vas recorriendo los renglones y pisando los que tenes en la base si usastes campos caracter, recorriendo los registros existentes y los renglones y agregando al final si los renglones tipeados son mas que los registros o borrando los registros finales en el caso inverso.

Ejemplo con get memo y campos caracter en una base (para una modificacion):
	REDEFINE GET oNotaRef VAR cNotaRef ID 112 FONT oFont5 MEMO OF oDlg

Al momento de grabar:

			LLOSTKTR->(DBGOTOP())
			MOVREPAR->(DBGOTOP())

			FOR I:=1 TO MLCOUNT(cNotaRef,50)
				IF MOVREPAR->TIPO == 'N'   // PISO RENGLON DE NOTA DE REF
					IF MOVREPAR->(DBRLOCK())
							REPLACE MOVREPAR->RENGLON WITH MEMOLINE(cNotaRef,50,i)
							MOVREPAR->(DBUNLOCK())
					ENDIF
				ELSE
					DO WHILE MOVREPAR->TIPO # 'N' .AND. !MOVREPAR->(EOF())
						MOVREPAR->(DBSKIP())
					ENDDO
					IF MOVREPAR->(EOF())
							MOVREPAR->(DBAPPEND())  // NO HAY MAS RENGLONES DE NOTA DE REF, LOS AGREGO
							REPLACE MOVREPAR->NUM     WITH OT:VREMITO
							REPLACE MOVREPAR->TIPO    WITH 'N'
							REPLACE MOVREPAR->MCAN    WITH LLOSTKTR->MCAN
							REPLACE MOVREPAR->RENGLON WITH MEMOLINE(cNotaRef,50,i)
							REPLACE MOVREPAR->MPRE    WITH LLOSTKTR->MPRE
							REPLACE MOVREPAR->IMPORTE WITH LLOSTKTR->IMPORTE
							MOVREPAR->(DBUNLOCK())
					ENDIF
				ENDIF
				MOVREPAR->(DBSKIP())
			NEXT

			// SI QUEDAN RENGONES DE NOTA DE REF SOBRANTES LOS BORRO
			IF !MOVREPAR->(EOF())
				DO WHILE !MOVREPAR->(EOF())
					IF MOVREPAR->TIPO == 'N'
							IF MOVREPAR->(DBRLOCK())
								MOVREPAR->(DBDELETE())
								MOVREPAR->(DBUNLOCK())
							ENDIF
					ENDIF
					MOVREPAR->(DBSKIP())
				ENDDO
			ENDIF
Daniel Puente
Mar del Plata, Argentina
danielpuente@speedy.com.ar
puenteda@hotmail.com
Posts: 117
Joined: Sun Oct 01, 2006 11:39 PM

Favor Necesito Orientacion Urgente

Posted: Thu Jan 18, 2007 02:51 PM

Daniel:

Te pasastes, muchas gracias, es lo que necesitaba.

Eternamente agradecido por tu ayuda,

Miguel Rivera

Continue the discussion