Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Crear cuenta

FoxPro/Visual FoxPro - FoxPro 9 - formulario

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:FoxPro 9 - formulario
Autor:Federico megaastro@hotmail.com (4 intervenciones)
Fecha:01/08/2012 19:43:23
hola, mi pregunta va referida a los formularios y su seteo. primero necesito sabes como puedo evitar registros duplicados, es decir que al ingreser un registro nuevo compruebe si este ya existe y en caso de q existe no permita grabarlo. Otra cosa que necesito sabes es como puedo hacer para que cuando aprete el boton de añadir un nuevo registro se seleccione el primer campo para ingresar los datos por teclado de forma automatica.

agradeceria una pronta respuesta..

MUCHAS GRACIAS!!
Responder Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:FoxPro 9 - formulario
Autor:many (127 intervenciones)
Fecha:02/08/2012 04:52:39
Bien,

1.-
Suponiendo que tiene un campo clave en la tabla llamado codigo y en el formulario tambien se llama codigo y la tabla se llama clientes.

en el evento clic del un boton debe hacer lo siguiente:

select clientes locate for codigo = thisform.codigo.value if !found() append blank replace nombre with thisform.nombre.value replace direccion with thisform.direccion.value etc. else replace nombre with thisform.nombre.value replace direccion with thisform.direccion.value endif
Si el campa codigo es numerico esta bien como està, pero si es charater debe hacerlo asi:
select clientes locate for alltrim(codigo) =alltrim( thisform.codigo.value) if !found() append blank replace nombre with thisform.nombre.value replace direccion with thisform.direccion.value etc. else replace nombre with thisform.nombre.value replace direccion with thisform.direccion.value endif
Ya ponle lo que quiera pero este es el esqueleto y funciona

si no encuentra el registro agrega un registro y lo rellena con la orden REPLACE, si lo encuentra puede usarlo para modificar sin usar la orden APPEND BLANK y lo mata ahi mismo.

si no entiende algo dimelo y te aclaro rapidamente.

2.-

solo debe saber como se el campo en la propiedad name, si se llama codigo lo hace asi:
thisform.codigo.setfocus
return

y listo

si tiene algo mas ponlo en foro y vere si puedo ayudar.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:FoxPro 9 - formulario
Autor:Federico (4 intervenciones)
Fecha:02/08/2012 20:23:33
muchisimas gracias ! me sirvio muchisimo...
por ahora no tengo dudas, continuare con mi programa y ya vere que duda me surge y seguramente estare escribiendo!

saludos!!
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:FoxPro 9 - formulario
Autor:neo (1441 intervenciones)
Fecha:02/08/2012 22:27:04
many, creo que el codigo está mal escrito, Que yo sepa el Append Blank crea un nuevo registro en blanco al final de una tabla.

Tu ejemplo:
select clientes
locate for codigo = thisform.codigo.value
if !found()
append blank
replace nombre with thisform.nombre.value
replace direccion with thisform.direccion.value
etc.
else

replace nombre with thisform.nombre.value
replace direccion with thisform.direccion.value

endif

Yo lo haria asi:
select clientes
set order to codigo
seek thisform.txtclave.value
if found()
replace nombre with thisform.nombre.value
replace direccion with thisform.direccion.value
wait window "Datos ACTUALIZADOS con éxito"

else
APPEND BLANK
replace nombre with thisform.nombre.value
replace direccion with thisform.direccion.value
wait window "Datos Guardados con éxito"
endif

La diferencia de "locate" y "Seek" es impresionante a la hora de trabajar en red.

Saludos!
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:FoxPro 9 - formulario
Autor:neo (1441 intervenciones)
Fecha:02/08/2012 22:30:19
Se me pasó un detalle de tu codigo:

Lo entendí asi:
If !found()
Si no encuentra el codigo
crear
else
si no lo encuentra
solo reemplazar
endif

Es que siempre lo hago asi:
If Found()
Si lo encuentra, solo reemplazar
else
si no lo encuentra crear y reemplazar.
endif


Saludos!
Comentar Subir