FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Combinaciones de filtros elegidas por el usuario. Tablas Paradox
Hola
No se como resolver este problemilla. Resulta que tengo una tabla ventas en la cual entre otros campos estan: PROVEEDOR, TALLA, COLOR, FECHA. Pues bien, necesito(bueno, yo no, mi clienta) hacer consultas combinando esos cuatro campos. Hasta ahora podia elejir uno de ellos con un valor y filtrar, pero ahora lo que quiero hacer es poder crear combinaciones. No se si me explico bien. Antes tenia un RadioButton para cada uno y hacia un filtro y ya está. Pero ahora lo que quiero es poner un CheckButton y que se puedan elejir los que quiera. Osea, Pues Tal proveedor de tal talla o Tal proveedor de tal talla y tal color o Tal proveedor entre esta fecha y esta. ¿Como puedo hacer el filtro solamente de los que esten marcados? Utilizo tablas paradox. Gracias y un saludo a todo el ClubDelphi |
#2
|
|||
|
|||
Pues lo único que has de hacer es unir las condiciones del filtro con un AND
Tabla.Filter = 'condicion1 and condicion2 and condicion3 and......'; Espero te sirva |
#3
|
|||
|
|||
Gracias Cadetill
El hacer filtros por mas de un campo ya lo he hecho, pero mi problemas es que yo no se cuales va a elegir el cliente. Hay cuatro checkboxs. Entonces son varias combinaciones que el cliente puede hacer. ¿Como implemento eso? |
#4
|
||||
|
||||
Como lo que vas a construir es una cadena, es fácil, recorres los checkboxes:
Por ejemplo: Código:
var cadSql:String; nCont:Integer; begin nCont:=0; if CheckBox1.Checked then begin CadSql:='MiCampo1 ='+QuotedStr(Edit1.Text); nCont:=nCont + 1; end if CheckBox2.Checked then if nCont > 0 then CadSql:=+CadSql+' And '; CadSql:=+CadSql+'MiCampo1 ='+QuotedStr(Edit2.Text); nCont:=nCont + 1; end ..... cadSql:=CadSql +'From MiTabla'; MiTabla.Filter:=CadSql; MiTabla.Filtered:=True; end; Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
Última edición por marcoszorrilla fecha: 18-01-2004 a las 20:35:12. |
#5
|
|||
|
|||
Muchisimas gracias Me va estupendo. A veces lo mas sencillo no lo ve uno, je je. Ya lo tengo implementado, aunque voy a ver si consigo hacerlo con un Query en lugar de un Table por el tema de las fechas. Supongo que la cadena Sql tendre q pasarla a la propiedad SQL. Es que no se como hacer lo de filtrar un rango de fechas con el Table. Con el Query usare between fecha1 fecha2. ¿Existe alguna manera de hacerlo con el Table?
Gracias otra vez, no se que haria sin vosotros |
#6
|
|||
|
|||
Cita:
Tabla.Filter := 'Fecha >= ' + QuotedStr(FormatDateTime('mm/dd/yyyy', FechaIni)) + ' and Fecha <= ' + QuotedStr(FormatDateTime('mm/dd/yyyy', FechaFin)) |
|
|
|