• Lunes 29 de Abril de 2024, 02:38

Autor Tema:  Mas De Un Filtro  (Leído 2946 veces)

ellerysammy

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Mas De Un Filtro
« en: Lunes 3 de Mayo de 2004, 16:43 »
0
Necesito hacer una consulta a una base de datos pero quiero que solo muestre las casillas que coincidan con ciertos valores que se le proporcionan, es decir me toca usar mas de un filtro, por que son 3 opciones de busqueda estoy haciendo lo siguiente con una de las opciones que capturo en un edit
Código: Text
  1. Table1->Filter="Edit1->Text";
  2.  

no se como hacer para que la consulta tenga en cuenta mas de ese filtro, las demas opciones las cpturo en unos combobox pero al querer hacer lo mismo, me dice que el valor que recojo del combobox no es un entero valido....
Necesito ayuda urgente
No importa cuan ocupado estes, sino cuanto de lo que realmente importa estas haciendo

cibervicho

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Mas De Un Filtro
« Respuesta #1 en: Miércoles 5 de Mayo de 2004, 01:06 »
0
podrias poner el codigo donde te marca el error?
·.·´¯`·.· ¤ D@vid ¤ ·.·´¯`·.·®

ellerysammy

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Re: Mas De Un Filtro
« Respuesta #2 en: Miércoles 5 de Mayo de 2004, 05:00 »
0
No me da ningun error de compilacion, la aplicacion corre, pero no perfectamente lo que pasa es que la consulta que quiero hacer no se muestra, sino que en el DBGrid se muestra toda la tabla(la tabla completa) en la que quiero hacer la consulta.....
Estoy tratando de esta forma
Código: Text
  1. Table1->Locate("DocEst",Edit1->Text,opcion);
  2. Table1->Locate("Periodo",ComboBox1->Text,opcion);
  3. Table1->Locate("NivelAcad",ComboBox2->Text,opcion);
  4.  
pero me sigue mostrando en el DBGrid la tabla completa  :(  es por eso que pregunto como puedo filtrar solo esos datos.  :(
No importa cuan ocupado estes, sino cuanto de lo que realmente importa estas haciendo

cibervicho

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Mas De Un Filtro
« Respuesta #3 en: Miércoles 5 de Mayo de 2004, 18:10 »
0
Porque no intentas con un Query pasandole como parametros los valores que quieres filtrar en codigo SQL en la sentencia WHERE.

Algo como:

   SELECT NOMBRE, DOMICILIO, EDAD
   FROM AYUDANTES
   WHERE EMPRESA=:P1 AND CATEGORIA=:P2

Espero que me entiendas?, no se si esto puede te puede servir?

Saludos y suerte
·.·´¯`·.· ¤ D@vid ¤ ·.·´¯`·.·®

ellerysammy

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Re: Mas De Un Filtro
« Respuesta #4 en: Viernes 7 de Mayo de 2004, 04:33 »
0
Lo de SQL me suena bien pero es que no estoy tratando con Query's sino con DataSource's y Table's........
Ahora estoy intentando de esta forma:
Código: Text
  1. Table1->Filter=Edit1->Text;
  2.    Table1->Filtered=true;
  3.  
pero me da un error que esta en la imagen adjunta.....
y aun no lo corrijo........
AYUDA :unsure:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
No importa cuan ocupado estes, sino cuanto de lo que realmente importa estas haciendo

chusi

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Mas De Un Filtro
« Respuesta #5 en: Sábado 8 de Mayo de 2004, 21:46 »
0
bueno segun entiendo quieres filtrar una tabla en donde los valores correspondan a tres condiciones, por ejemplo supongamos que tienes una tabla cliente en donde manejamos estos tres campos:

Nombre
Telefono
Baja

ahora supongamos que tienes la tabla asi:

----------------------------------------------------------------------------
Nombre                                         |Ciudad                    |Baja|
----------------------------------------------------------------------------
Juan                                                 Mexico                      Si
Pedro                                               Merida                      No
Luis                                                  Campeche                Si


ahora supongamos que quieres que e muestre aquel registro en donde sea el nombe Pedro, su ciudad Merida y Baja sea No

tu codigo seria así:

NombreTabla->Filter="";
NombreTabla->Filtered=false;
NombreTabla->Filter="Nombre='Pedro' AND Ciudad='Merida' AND Baja='No'";
NombreTabla->Filtered=true;

asi tu tabla despues del filtro quedaria asi;

----------------------------------------------------------------------------
Nombre                                         |Ciudad                    |Baja|
----------------------------------------------------------------------------
Pedro                                               Merida                      No

de preferencia te recomiendo que primero borres cualquier filtro que pudiera existir (NombreTabla->Filter="";) y que establezcas a false la propiedad Filtered

ahora si los parametros vienen de combos o cuadros de texto solamente construye el filtro con concatenaciones manejanod el nombre de los controles de donde provienen los parametros no olvidando  encerrar en comillas simples los parametros sino te causaran error

OJALA TE HAYA SERVIDO SI REQUIERES MAS AYUDA PUEDES CONTACTARME A MI MAIL SIN DUDARLO

ISC JESUS SANTIAGO MAGAÑA ROSADO
jsmr0703810@hotmail.com

chusi

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Mas De Un Filtro
« Respuesta #6 en: Sábado 8 de Mayo de 2004, 21:51 »
0
una cosilla mas, las opciones de locate que te enviaron son adecuadas pero no para filtros, esas sentnecias lo que hacen localizan registros (busquedas) en las tablas, es decir se posicionan en el registro coincidente haciendolo activo (en este caso devuelve un valor true) y si no lo enciuentra delvuelve false, por eso nunca te filtraran la tabla y siempre t la mostraran completa

perdon por mi correo esta mal escrito en mi anterior mensaje
ISC JESUS SANTIAGO MAGAÑA ROSADO

el correcto es
jsmr070380@hotmail.com

ellerysammy

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Re: Mas De Un Filtro
« Respuesta #7 en: Domingo 9 de Mayo de 2004, 17:35 »
0
Estoy utilizando la siguiente sintaxis(claro despues de leer su respuesta):
Código: Text
  1. Table1->Filter="";
  2. Table1->Filtered=false;
  3. Table1->Filter="DocEst='Edit1->Text'AND Periodo='ComboBox1->Text'AND NivelAcad='ComboBox2->Text'";
  4. Table1->Filtered=true;
  5.  

Y ahora el error dice lo siguiente:
'ComboBox1->Text' Not is a valid interger value, ya se que quiere decir e intento esto:
'ComboBox1->Text.ToInt()' y me sigue duciendo lo mismo:
'ComboBox1->Text.ToInt()' Not is a valid interger value.

He  tratado definiendo una variable entera y asignarle el valor de los combobox como enteros y aun me dice el mismo error, esta vez cambiando solo el nombre de la variable en el mensaje asi:
'Variable' Not is a valid interger value.

Es mas cuando quiero solo filtrar asi:
Código: Text
  1. Table1->Filter="DocEst='Edit1->Text'";
  2.  
me muestra la tabla vacia, habiendo concordancia entre el campo y el parametro que le estoy pasando...........

Para no extenderme mas, vale aclarar que ya he tenido en cuenta todas las recomendaciones que se me han dado de eliminar filtros anteriores( que al fin y al cabo no los tenia).........

Gracias por la ayuda queme puedan prestar.....

Ver imagen adjunta por si puede servir de mas
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
No importa cuan ocupado estes, sino cuanto de lo que realmente importa estas haciendo