Combos en Visual FoxPro y sistemas de inventario de cómputo

Hola:
Estoy realizando un sistema de inventario de computo, ya termine la parte de la captura ya que es fácil hacerlo, pero ahora que estoy viendo lo de las consultas me quede atorado y por más que le busco no le encuentro ya que quiero realizar consultas en base a varios campos.
Quiero consultar el tipo de equipo(Monitor, Cpu, Teclado, etc.), marca (Samsung, HP, BTC), modelo (17", 20", etc), usuario y área a la que pertenece; Si yo quiero realizar una consulta solo por un campo, si la se hacer, pero si la consulta es por varios campos no se me ocurre una manera sencilla de hacerlo ya que pensé en hacerlo mediante consultas independientes pero son tantas las combinaciones(más de 100) que es difícil lograrlo.
La otra duda que me queda y es sobre el mismo tema, es que al desplegar los combo box los cuales están ligados a una base de datos me muestro datos repetidos, como puedo filtrarlo y solo me aparezca un dato.
Mucho agradeceré la atención prestada y la ayuda que se me pueda dar.
Respuesta
1
1,. Para hacer una consulta de ese tipo arme una sentencia a medida que tenia combos para consultar mira supongamos que tenemos 3 combos y no sabemos si pusieron o no datos en los combos para hacer las consultas entonces en el botón consultar programaría de la siguiente forma. (combo1=marca,combo2=equipo,combo3=modelo)
dato1=''
dato2=''
dato3=''
if !empty(thisform.combo1.value)  && o  Thisform.combo1.value<>''
   dato1='marca=thisform.combo1.value'
endif
if !empty(thisform.combo2.value)  && o Thisform.combo2.value<>''
   dato1='equipo=thisform.combo2.value'
endif
if !empty(thisform.combo3.value)  && o  Thisform.combo3.value<>''
   dato1='modelo=thisform.combo3.value'
endif
** ahora armo la consulta
cons='selec * from tabla where  '
con1=iif(dato1<>'',dato1+iif(dato2<>'',' and '+dato2,'')+iif(dato3<>'',' and '+dato3,''),'')
cons=cons+con1+ ' order by campoaordenar into cursor nombrecur'
** y ahora lo ejecuto
&cons
Espero entiendas lo que hice
2.- Consulta la orden en la consulta selec group by
Avisame como te fue
Agradezco tu valiosa ayuda; Estuve analizando el código que me enviaste y solo me surgieron algunas dudas.
a) Inicializas las variables dato1, dato2 y dato3, pero cuando realizas los if's de los combos 1 2 y 3, les asignas el valor de los 3 combos a la misma variable dato1; ¿Esto es correcto? O al combo2 le asignas la variable dato2 y al combo3 la variable dato3.
if !empty(thisform.combo1.value)  && o  Thisform.combo1.value<>''
   dato1='marca=thisform.combo1.value'
endif
if !empty(thisform.combo2.value)  && o Thisform.combo2.value<>''
   dato1='equipo=thisform.combo2.value'
endif
if !empty(thisform.combo3.value)  && o  Thisform.combo3.value<>''
   dato1='modelo=thisform.combo3.value'
Endif
b) En la siguiente linea:
con1=iif(dato1<>'',dato1+iif(dato2<>'',' and '+dato2,'')+iif(dato3<>'',' and '+dato3,''),'')
Es así la linea o faltaron un 'and' y cerrar parentecis en el dato1, antes del +iif(dato2...
Y por consiguiente abrir un parentecis antes del primer iif para que coincida con el ultimo ") de la linea.
Nuevamente agradezco tu atención.
Si tienes razón no cambie la variable dato1 por 2 y 3 pero en tu observación b no debes cerrarel primer iif pero analizando el código también funcionaria.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas