FoxPro/Visual FoxPro - Where en Vfp9

 
Vista:
sin imagen de perfil
Val: 69
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Where en Vfp9

Publicado por Jesus (121 intervenciones) el 27/02/2021 04:58:10
Estimados Expertos
Buenas Noches espero que me puedan ayudar no tengo mucha experiencia en Vfo y la verdad ya llevo varios
días con este problema:
En el Motor Sql ejecuto este comando:

1
where 1=1 and (tipo='BLANCO' OR TIPO='DUPLICADO')

y me muestra el resultado deseado pero cuando esto mismo lo paso a Vfo no me muestra nada este el código que estoy intentando usar:

1
SELECT * FROM TbGral Where 1=1 and (Tipo='XtpR' or Tipo='XtpB' or Tipo='XtpE' or Tipo='XtpD')


TENGO 4 CheckBox y segun la necesidad del usuario va ir selccionando el tipo un dia puede filtrar por Regular y Duplicado y otro dia Estandar Regular y asi susecivamente por ello dentro de cada CheckBox esta
una variable segun su tipo tal como lo muestro en la imagen q adjunto.

1
2
3
4
XtpR="REGULAR"
XtpB="BLANCO"
XtpE="ESTÁNDAR"
XtpD="DUPLICADO"

lo que deseo es que filtre los datos para generar su reporte segun el tipo que el usuario desea
de ya mucha gracias por su tiempo y paciencia

ChekBox
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
sin imagen de perfil
Val: 147
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Where en Vfp9

Publicado por zarlu (97 intervenciones) el 27/02/2021 14:40:04
Buenos días Jesus!

Te sugiero elimines las comillas de...Tipo='XtpR' or Tipo='XtpB' or Tipo='XtpE' or Tipo='XtpD'

Quizá sea mejor hacerlo así:
lcFiltro=XtpR+XtpB+XtpE+XtpD
y entonces en el SELECT:
...and Tipo $ lcFiltro

Suerte
zarlu
Chetumal, Quintana Roo, México
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
sin imagen de perfil
Val: 69
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Where en Vfp9

Publicado por Jesus (121 intervenciones) el 27/02/2021 22:39:25
Estimado Zarlu
Buenas tardes y muchas gracias por apoyarme
realice tus indicaciones:

Declare en el Init
lcFiltro=""

luego en boton clic en donde deberia procesar todo digite este linea:

lcFiltro=XtpR+XtpB+XtpE+XtpD

SELECT * FROM TbGral Where 1=1 And Tipo $ lcFiltro

no se si estara bien pero cuando lo ejecuto no filtra nada me muetsra la tabla en blanco deberia para mi ejemplo mostrame en total 15 registro entre Blanco y Duplicado solamente.

Las Variables: XtpR, XtpB XtpE y XtpD almacenan un valor segun el Click que den el CheckBox que eligan a la azar el usuario como decia pel tipo puede ser Regular + Blanco o
Blanco + Duplicado o
Blanco + Estandar + Duplicado

no siempre el usuario usrar las 4 condiciones o tipos


de ya muchas gracias por tiempo y paciencia espero me sigas ayudando por favor
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
sin imagen de perfil
Val: 147
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Where en Vfp9

Publicado por zarlu (97 intervenciones) el 28/02/2021 00:08:30
Buenas tardes Jesús!

Probaste eliminando las comillas de tu código original?
Osea quitar las comillas de aquí:
1
SELECT * FROM TbGral Where 1=1 and (Tipo='XtpR' or Tipo='XtpB' or Tipo='XtpE' or Tipo='XtpD')
(Razón: Estás comparando literal 'XtpR','XtpB','XtpE','XtpD' en lugar del valor de esas variables)

De lo que te sugerí prueba así:
....and Alltrim(Tipo) $ lcFiltro

zarlu
Chetumal, Quintana Roo, Mexico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 69
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Where en Vfp9

Publicado por Jesus (121 intervenciones) el 28/02/2021 04:07:37
Buenas Noches
Estimado Zarlu
Eres un Genio por fin quedo el Código final :

1
SELECT * FROM TbGral Where 1=1 And ALLTRIM(Tipo) $ lcFiltro

ya me da el resultado filtrado deseado que necesitamos muchas pero
muchas gracias llevo semanas con este problema lastimosamente soy novato en Vfp

solo quería pedir un ultimo favor como hago para que este resultado me lo envié a
una tabla o curso con el nombre que yo elija por ejemplo TbFinal

De ya muchas 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
sin imagen de perfil
Val: 147
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Where en Vfp9

Publicado por zarlu (97 intervenciones) el 28/02/2021 17:21:54
Buenos días Jesús!

Para enviar a un cursor o una tabla sería...
SELECT * FROM TbGral Where 1=1 And Tipo $ lcFiltro INTO table nombretabla
SELECT * FROM TbGral Where 1=1 And Tipo $ lcFiltro INTO cursor nombrecursor

Te hago algunas sugerencias:
En tu Select quizá está de más.."1=1"
Si es sólo para consultas temporales te sugiero el cursor, no tiene caso ocupar espacio con tablas.
Revisa la ayuda de VFP y los ejemplos, también hay mucha información en la red. Te será de mucha utilidad.

Con gusto para apoyarte.

zarlu
Chetumal, Quintana Roo, México
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 69
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Where en Vfp9

Publicado por Jesus (121 intervenciones) el 01/03/2021 18:02:34
Quedo Excelente
Muchas Gracias por tu Apoyo y Sugerencias
Bendiciones
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