Necesito migrar de Access a VFP 9 y no puedo crear consultas y formularios con parámetros.

Hice varias aplicaciones en Access porque es lo que mejor aprendí a manejar, pero ahora tengo un grupo de personas que necesitan migrar sus bases en Access a otro sistema y me pareció que VFP era el más apropiado.
Mi problema es que cuando quiero generar consultas, formularios o informes con parámetros para que el usuario ingrese una fecha de inicio y otra de fin, no logro que el sistema lo acepte, en otras palabras como soy nueva en esto no tengo idea como hacer para obtener la respuesta que quiero en el listado.
Resumiendo: ¿Cómo genero parámetros en VFP 9?

1 Respuesta

Respuesta
1
Generar parametros de busqueda por fecha (y por otro dipo de datos tambien) en foxpro es algo sencillo! Hay varias maneras de hacerlo...! Puede ser por: una consulta generada con un SELECT a una tabla, un filtro aplicado a la tabla mediante el comando SET FILTER TO... tambien se puede usar sobre una tabla un comando LOCATE FOR y asi buscar un registro especifico... ves! :) Todo depende de que, como y donde quieres buscar (consultar). Puede aplicar a una condicion de filtro en una consulta, lo puedes hacer para mostrar datos en un formulario a traves de controles (Grid, Texts, Combos, etc) y tambien para un informe!
1. Consulta con SELECT 
Te ejemplificare como se hace: crea un formulario y agregale: 2 textsbox (text1 y text2, rspectivamente), 2 botones (generar consulta y salir, respectivamente). Crea una tabla llamada "consulta" y agregale los campos: numero (formato numerico) y fecha (formato DATE). Agrega registros de forma manual a la tabla y establece una secuencia de fechas (del 01 al 10 del mes tal del ano tal, por ejemplo). Anda a las propiedades de los texts, en la pestanna DATA selecciona la propiedad FORMAT y coloca una "D" (sin comillas, asi: D) esto es para que los texts te permitan capturar datos con _/ _/ _ El text1 sera la fecha inicial y el text2 la final! :) El asunto de esto sera: mostrar los numeros que esten entre las fechas que especifiques! :)
NOTA: debes tener en cuenta que las tablas de foxpro almacenan los datos de tipo DATE (fecha) con el formato mes/dia/anno! Para pasarla al formato que notros usamos dia/mes/anno, debes establecer en el evento INIT() de tu form:
SET DATE BRITISH
Si queres saber mas sobre los formatos de fecha, lee aqui :)
http://msdn.microsoft.com/es-es/library/cc467284(v=vs.71).aspx
Una vez agregados los datos a la tabla, anda a tu form, en modo de diseno y agrega la tabla al entorno de datos. EN el boton generar, coloca un codigo como este:
LOCAL dfecha1, dfecha2
dfecha1 = CTOD(THISFORM.Text1.Value)
dfecha2 = CTOD(THISFORM.Text2.Value)
**--Generamos consulta
SELECT numero,  fecha FROM consulta WHERE fecha => dfecha1 AND dfecha2 =< dfecha2 INTO CURSOR curtemp1
**--Mostramos consulta
BROWSE
Ahora guarda y proba! Inserta las fechas y dale click a generar! La consulta se generara, incuyendo solo los registros comprendidos entre las fechas que has especificado! Ves! :) CTOD() es una funcion que se utiliza para convertir a una expresion de fecha los datos ingresados en los texts!
Proba esta respuesta! Y si te funciona, pasaremos a la segunda forma, a traves de un SET FILTER a la tabla! Tambien, como generarlos con un reporte o en un formulario! Si no te funciona, avisame para ayudarte!
Estoy a tus ordenes!
Saludos!
Desde Managua, Nicaragua!
Ravenn! :D :D :D
Hola, gracias por tu respuesta, probé el código que me enviaste y lo que hace es tomar la primera fecha pero no la segunda.
Reviso el código y todo está bien, además de que hice copiar y pergar del que me enviaste.
No logro ver que es lo que le pasa.
Saludos
Sandra
Ohh sii! Hay un error en el codigo! Mil disculpas! Es asi: 
**--
SELECT numero, fecha FROM consulta WHERE fecha => dfecha1 AND fecha =< dfecha2 INTO CURSOR curtemp1
**--
BROWSE
**--
Ahora si! Prueba! :) Debe funcionar!

Hola, realmente te agradezco muchísimo tu ayuda, me sirvió de mucho, ya estoy bien encaminada con mi aplicación.

Disculpá el tiempo que ha pasado hasta responderte.

Saludos y éxitos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas