FoxPro/Visual FoxPro - Pasar de Valores o algo asi

 
Vista:

Pasar de Valores o algo asi

Publicado por israelfipa (14 intervenciones) el 10/02/2005 16:08:11
Saludos a todos, no se realmente como formular mi pregunta, por eso ese titulo tan simple, mi problema es el siguiente ESTOY APRENDIENDO FOXPRO ya le medio agarre la onda al Foxpro 2.6 y ahora estoy programando con el 8 pero hay muchisimas cosas que cambiaron, en fin, ahora lo que estoy queriendo hacer que tampoco pude en el 2.6 es que mi programa me imprima un reporte con ciertos registros, para hacerlos imple imaginense una BD con una tabla y un campo, en ese campo tengo 10 registros, ahora lo que quiero es imprimir N registros, osea que me imprima el 1,3,4,8 y 6 o bien el 1 y el 5 o los que el usuario desee, yo medio conozco visual basic y ahi lo que haria seria una sentencia SQL en la que pusiera SELECT * FORM bd WHERE cadena... en donde BD es mi base de datos o tabla y cadena es una variable de tipo cadena en la que ya arme previamente los registros que quiero que selecciones, y el valor de cadena seria este:
cadena='dato=1 or dato=3 or dato=4 or dato=8 or dato=6' con eso yo pasaria el valor de cadena a la sentencia SQL, ahora mi pregunta es ¿COMO HAGO ALGO SIMILAR EN VISUAL FOXPRO 8?

Gracias de antemano y espero haberme explicado.
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:Pasar de Valores o algo asi

Publicado por Roman Suazo (2723 intervenciones) el 10/02/2005 16:19:47
Lo mismo, crea tu sentenecia SELEC SQL la corres y el resultado lo mandas a un cursor que sera la fuente de datos del reporte algo asi:

Sele * from mitable where campo=1 or campo=2 into cursor MiReporte
Selec MiReporte
go top
*corres el reporte aqui

En el reporte tenes que limpiar el entorno de datos, es decir, no debe haber ninguna tabla ahi y los textbox qe pongas en la bandas del reporte solo es necesario que se haga referencia solamente al campo de la tabla (no es necesario poner todo el nombre)

La ota solucion es usar SET FILTER TO algo asi:

SELEC MITABLA
SET FILTER TO
SET FILTER TO CAMPO=1 OR CAMPO=2
GO TOP
SELEC MITABLA
*corres el reporte

En este caso tambien se podria aplicar lo mismo con respecto a los campos
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:Pasar de Valores o algo asi

Publicado por israelfipa (14 intervenciones) el 10/02/2005 16:31:55
Ok Roman Suazo si te entiendo y te agradezco que te hallas molestado en responderme pero el problema sigue asi, tu me das esta solucion:

SELEC MITABLA
SET FILTER TO
SET FILTER TO CAMPO=1 OR CAMPO=2
GO TOP
SELEC MITABLA
*corres el reporte

pero yo necesito que en donde dice SET FILTER TO lo demas sea variable, es decir, en tu ejemplo pusiste dos datos, pero quizas el usuario no desee imprimir nada mas 2 campos, sino 3 o 4, entonces eso yo lo solucionaria en VB con el paso de valor de una variable como ya explique, es decir te lo voy a poner como le he estado intentando en VF

*** esta variable puede cambiar de cantidad de campos
*** ahorita esta asi
VARIABLE1='CAMPO=1 OR CAMPO=2 OR CAMPO=3'

***pero tambien pueden cambiarla asi
VARIABLE1='CAMPO=1 OR CAMPO=2 '

*** y ya en el SET FILTER solo le paso los valores de la variable
*** para que vea la cadena como tal y no como constante
SELEC MITABLA
SET FILTER TO
SET FILTER TO VARIABLE1
GO TOP
SELEC MITABLA
*corres el reporte

y entonces yo crearia la cadena VARIABLE1 a mi gusto, o a gusto del usuario y solamente le pasaria el valor al SET FILTER y ya estaria solucionado el problema, pero al ponerle SET FILTER VARIABLE1 en lugar de ver el valor el programa ve la variable como constante o algo asi, y no me muestra nada...

Espero Explicarme y gracias nuevamente
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:Pasar de Valores o algo asi

Publicado por Roman Suazo (2723 intervenciones) el 10/02/2005 17:27:37
Pon algo asi:

SET FILTER &VARIABLE1

o

SET FILTER Eval(VARIABLE1)

Siempre procurando ejecutar los otros pasos explicados
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:Pasar de Valores o algo asi

Publicado por israelfipa (14 intervenciones) el 10/02/2005 20:37:36
Hola Nuevamente Roman Suazo.

Pues bien, te agradezco nuevamente y espero no cansarte, yo pense que hiba a ser igual en cualquier otra funcion por eso pregunte para SQL, pero lo que realmente quiero es que me funcione en el comando REPORT.

El codigo que utilizo es el siguiente, lo meto en un boton dentro de mi formulario y pues el reporte ya lo tengo creado el cual esta referenciado a la base de datos EMP:

DEFINE WINDOW w_Output ;
FROM 0,0 TO 25,70 ;
TITLE 'CREDENCIALES' ;
CLOSE FLOAT GROW ZOOM SYSTEM

A = 'NOEMP=121 OR NOEMP=1'

REPORT FORM c:\sec\re\credencial ;
FOR &A ;
PREVIEW WINDOWS w_output ;
NOEJECT NOCONSOLE

En este codigo estoy implementando lo que me dices pero no funciona, quizas en el FILTER si ha de funcionar, pero no lo puedo probar porque como ya dije antes estoy totalmente perdido en el VISUAL FOXPRO 8, la cadena ahorita la pongo por default pero se supone que la voy a generar en tiempo de ejecucion, la puse asi para probar tu solucion Roman.

Bien que mal ya he ido sacando el proyecto, buscando en internet, pero para este problema que tengo no encontre una solucion entendible por eso estoy en este foro preguntando. Y pues si pudieras nuevamente ayudarme te estaria muy agradecido, o a alguien mas que pudiera hacerlo, de antemano MIL GRACIAS.
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:Pasar de Valores o algo asi

Publicado por israelfipa (14 intervenciones) el 10/02/2005 20:50:42
Upss, ya ven, como les digo, me falla todavia el VISUAL FOXPRO 8

YA FUNCIONA

MIL GRACIAS ROMAN, lo que me fallo despues de tu ultimo mensaje fue que esos registros el 121 y el 1 ya los habia eliminado de la base de datos y no me acordaba, pero despues haciendo pruebas intente con otros registros y pues ya jalo

MIL GRACIAS NUEVAMENTE
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