Problema con Records VFP 6

Hola, estoy teniendo problemas con los records de mi tabla ya que cada vez que trato de obtener información de mis records, me los modifica en lugar de añadir un nuevo record... Por ejemplo yo necesito que el mi FORM cuando pongo el remitente y luego el beneficiario pues que la información del beneficiario como teléfono, banco y cuenta se ponga automáticamente (esto obviamente si el beneficiario ya esta en la base de datos), para realizar este procedimiento en el VALID() del Field cbeneficiario puse lo siguiente:
*** Definición de Variables ***
CREMITENTE = ALLTRIM (THISFORM.CREMITENTE1.VALUE)
CBENEFICIARIO = ALLTRIM (THIS.VALUE)
*******************************
*** Localización en la tabla ***
SELECT ALFA
LOCATE FOR CREMITENTE1 = CREMITENTE AND CBENEFICIARIO1 = CBENEFICIARIO
IF FOUND ()
WAIT WINDOW 'Recuperando Información...' time 1
THISFORM.CTELEFONOB1.VALUE = ALFA.CTELEFONOB
THISFORM.CBANCO1.VALUE = ALFA.CBANCO
THISFORM.CCUENTA1.VALUE = ALFA.CCUENTA
ELSE
Endif
El problema que tengo es que en realidad si me busca los datos, pero en lugar de anadirlos al nuevo record lo que hace es modificarme el record de donde originalmente recupero esa información, quisiera saber si es que estoy usando variables equivocadas o que estoy haciendo mal o si me falta alguna linea en el VALID o LOSTFOCUS que agregar.
Un saludo.
Javier Rivera
Respuesta
1
hasta donde pude ver estas haciendo la búsqueda en la misma tabla donde estas grabando los datos, el locate te mueve de registro y te altera la tabla en el registro encontrado, para optimizar este código haz lo siguiente
CREMITENTE = ALLTRIM (THISFORM.CREMITENTE1.VALUE)
CBENEFICIARIO = ALLTRIM (THIS.VALUE)
*******************************
*** Localización en la tabla ***
SELECT ALFA
select * from alfa where CREMITENTE1 = CREMITENTE AND CBENEFICIARIO1 = CBENEFICIARIO into cursor vreportes &&&&este select se puede mejorar con un top 1
IF _tally>0
WAIT WINDOW 'Recuperando Información...' time 1
THISFORM.CTELEFONOB1.VALUE = vreportes.CTELEFONOB
THISFORM.CBANCO1.VALUE = vreportes.CBANCO
THISFORM.CCUENTA1.VALUE = vreportes.CCUENTA
ENDIF
if used('vreportes')
Use in vreportes
Endif

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas