Ver la Versión Completa : Filter no hace nada
ilichhernandez
08-05-2007, 23:38:58
Estimados, nuevamente recurro a ustedes pues he probado una par de manera de hacer un filter y no funciona, tengo un DBgrid que es fruto de una query, este dbgrid tiene un campo fecha (entre otros) y quiero mostrar por ejemplo los registros que tengan fecha 2007 solamente (por poner un ejemplo), he intentado con los siguientes codigos.
DBGrid1.DataSet.Filter := 'FECHA > DateTimePicker1.date';
DBGrid1.DataSet.Filtered := True;
DBGrid1.datasource.DataSet.Filter := 'Fecha >= datetostr(01/01/2007)';
DBGrid1.datasource.DataSet.Filtered := True;
DBGrid1.datasource.DataSet.Filter := 'Fecha >= datetostr(datetimepicker1.date)';
DBGrid1.datasource.DataSet.Filtered := True;
Si alguien me comentara en que me estoy equivocando quedaria muy agradecido.
Atentamente
Ilich Hernandez.
Chris
08-05-2007, 23:55:30
No estoy acostumbrado a trabajar con queries, talvez necesites convertir la fecha a a SQLTimeStamp, hay una función para hacer esto.
Para trabajar con los filtros de fechas yo lo hago así.
myTable.Filter := 'Fecha >= QuotedStr(DateToStr(DateTimePicker1.Datetime))
myTable.Filtered := True;
Fijate que llamo a la función QuotedStr la cual me devolverá algo como '08/05/2007' (con las comillas). Creo que ese es tu problemas que te faltaba el quotedStr.
Rodo_Rodo
09-05-2007, 00:31:59
Sabes yo Haria ese proceso directamente al Query, Filtras en elquery y como existe una relacion con el dbgrid por el datasourse el filtro que le hagas se te mostrara. Creelo Hice la prueba varias veces. Ahgi te mando el codigo espero te sirva By..
Código Delphi [-] (http://www.clubdelphi.com/foros/#)Query1.Filter = Gestion='2007' Query1.Filter:=True
y Esto te realiza el filtro Pruebaloooo..:eek:
ilichhernandez
09-05-2007, 22:09:47
voy a probar y luego les comento como me fue, gracias...:D
Caral
09-05-2007, 23:56:16
Hola
DBGrid1.DataSet.Filter := 'FECHA >= '+DateToStr(DateTimePicker1.date);
DBGrid1.DataSet.Filtered := True;
La sentencia sql no puede contener el concatenado, se usa el signo + fuera de esta, revisalo.
Saludos
Caral
10-05-2007, 00:10:34
Hola
La verdad sigo con esto-.
Cuando se hace un filtro se hace de algun componente que traiga la tabla en si.
Table, query.
El dataset, el datasource, ect, son conectores de estos hacia algun componente visual, como el dbgrid.
Con esto coincido con D&W, en cuanto al uso de estos componentes, un ejemplo con query.
Query1.Filter := 'FECHA >= '+DateToStr(DateTimePicker1.date);
Query1.Filtered := True;
Insisto en el uso del concatenado.
Saludos
ilichhernandez
15-05-2007, 17:26:19
He utilizado un query con filter pero me arroja el error que sigue
Project Project1.exe raised exception class EDatabaseError with message 'Arithmetic in filter expressions not supported'.
estoy utilizando el codigo siguiente :
cadena := 'Fecha > ' + DatetoStr(DateTimePicker1.date);
showmessage(cadena);
dm.qry_oc.filter := cadena;
dm.qry_oc.Filtered := true;
vtdeleon
16-05-2007, 01:45:22
Saludos
Te faltó QuotedStr()
cadena := 'Fecha > ' + QuotedStr(DatetoStr(DateTimePicker1.date));Prueba a ver, aunque a veces con querys, filtrar no sirve.
ilichhernandez
16-05-2007, 09:08:24
mañana apenas llegue al trabajo, pruebo y les cuento... gracias....
vBulletin v3.6.8, Derechos ©2000-2013, Jelsoft Enterprises Ltd.