FoxPro/Visual FoxPro - Ayuda con Ingreso y Busqueda

 
Vista:

Ayuda con Ingreso y Busqueda

Publicado por santiago (13 intervenciones) el 05/01/2004 16:24:23
Que tal amigos : Nuevamente recurro a sus sabios consejos a ver si me pueden ayudar con dos problemas que tengo. He creado un formulario para mantenimiento de los registros osea para Ingreso, Consulta y modificacion, Busqueda, etc.
1)Al ingresar una nueva orden utilizo el valid y a pesar que no existe la orden me da como que ya existe y haciendo un analisis de ello me di cuenta que al momento de ingresar una orden directamente lo GRABA y es por esa razon que siempre me indica que YA EXISTE DICHA ORDEN, como le hago para evitar suceda esto y no grabe. Los 2 camos de validacion tienen la propiedad CONTROLSOURCE con la tabla relacionada.
2)Para BUSCAR una orden he creado un formulario adicional de busqueda, la validacion lo hace a la perfeccion pero cuando encuentra una orden y quiero que los demas datos de dicha orden apararezcan en el formulario principal no VIZUALIZA EL REGISTRO ENCONTRADO, he probrado utilizando SCATTER MEMVAR, THISFORM.REFRESH,GOTO Registro, utilizo el SEEK para la busqueda.
Espero que alguno de ustedes me pueda ayudar a solucionar los dos problemas planteados.
Desde ya les agradezco la atencion brindada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Ingreso y Busqueda

Publicado por Roman Suazo (2723 intervenciones) el 05/01/2004 19:31:36
Para la primera pregunta, el asunto es que estas trabajando directamente con la tabla y por eso te pueden salir ese tipo de errores.
Prueba usando el buffer, asi podras salvar los datos de una manera
mas segura. Para usar bufferes checa los comandos set multilock,
cusrsetprop,tableupdate, etc. Asi como tambien te recomiendo que leas
los capitulos que vienen en la ayuda acerca de estos temas. Tambien
podrias solucionar tu problema NO usando la propiedad controlsource
de tus controles, asi una vez que este validada la informacion recoges
la informacion de los controles y la pones en el respectivo registro. Te
recomiendo en todo caso usar los buferes (que es como una tabla extra
donde estas trabajando, en lugar de la tabla original).

Con respecto a tu segunda pregunta el caso me parece mas raro, ya que me parece que estas haciendo lo correcto, de por si el SEEK creo que te mueve el puntero al registro enecontrado, por lo tanto solo necesitarias tal vez un refresh. La otra forma que usas tambien deberia
funcionar, es decir, usar GO con el numero del registro encontrado.
Aun asi la forma mas segura es usando el seek o el indexseek
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Ingreso y Busqueda

Publicado por Alfredo Bielma Lopez (10 intervenciones) el 06/01/2004 03:29:41
Para la búsqueda prueba con este código a mi me funciona

use /* tabla*/
select /*tabla*/
set order to tag /* campo a buscar en la tabla*/
*indice de la tabla
seek /* thisform.text1.value (por ejemplo) */
* donde introduzco el dato a buscar
if found()
thisform.text1.value = tabla.campo
thisform.text2.value = tabla.campo2
** si tubo exito la busqueda
else
messagebox(\" Registro no encontrado \"\")
** por no
endif
thisform.text1.setfocus

Saludos de Coatzacoalcos, Ver.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar