![]() |
Filtrar
Me gustaria saber como puedo filtrar una tabla paradox por un dato en concreto :mad:
|
Hola Pepelu!
Cambia las propiedades del TTable ---> Filtered = true y en Filter pon la condición que deben cumplir los registros para mostrarse. Espero que te sirva. Saludos! |
Muchas gracias, voy a intentar explicarlo un poco mejor, porque me he quedado a medias.
Tengo un programa en Paradox donde doy de alta cuadros y cadacuadro tiene un codigo perteneciente a la exposicion a la que pertenece, me gustaria saber como puedo hacer para que en un form me pregunte que codigo de exposicion quiero listar en un Qreport y que me liste todas las obras con ese codigo, me habian dicho que es mediante un filtro. Chas gracias |
Pues es precisamente lo que te ha respondido Nuria
Selecciona el TTable y verás que tiene las propiedades que te indica (Filter y Filtered) Eso si, recomiendo que sigas este orden
|
Debo de estar hoy muy espeso orque no entiendo nada, gracias por vuestra ayuda a ver si me concentro un poco y lo saco.
|
Con lo que te han dicho Nuria y Cadetill sería más que suficiente, pero dado el espesor matutino que confiesas te amplio un poco más, pon un Tedit, escribe el código o dato a filtrar y en un botón pon el código siguiente:
Ya puestos pones una rejilla que visualice los datos desde el principio así verás como al poner el filtro éste funciona. Ahora lanzas quickreport y solamente te mostrará los elementos que pasen el filtro. Un Saludo. |
Gracias a todos los que ayudan a encontrar la fluidez en dias de espesor.
|
Se me ha vuelto a apagar la bombilla, la primear busqueda me la hace perfecta, pero el problema aparece cuando intento hacer una segunda busqueda, porque en el QReport me aparecen los datos de la primera y de la segunda y asi sucesivamente, existe algun comando que limpie de datos el Qreport.
Gracias |
y cómo lo haces? Pon algo de código a ver si damos con la solución ;)
PD: acuerdate de usar la etiqueta [ code ] o [ delphi ] |
El codigo de Busqueda es:
TObras.Filter := 'cod_expo = ' + QuotedStr(Edit1.Text); TObras .Filtered := True; FListadoObras.QuickRep1.Preview; Entonces no se si existe la opcion Refresh, y si existiera la debo de poner tanto en el campo Edit1 para que me quite el valor introducido antes y ademas ponerlo en el QuickRep1? |
Pues esto debería de funcionarte
|
si que me funciona, el problema es que si lo cierro y vuelvo a hacer una consulta en el QuickReport me sale la consulta nueva mas la anterior
|
mira de debuggear a ver que valores estás poniendo en el filtro. No tiene mucho sentido lo que comentas :confused:
|
Me da la impresion que el problema no es del filtro sino del QuickReport que he creado, voy a ver que consigo sacar por ese lado.
Gracias por todo |
En el OnClose del Formulario que contiene QuickReport
Un Saludo. |
Me he fijado y la cuestion es que siempre que le pulso al boton de filtrar en el Qreport me aparecen todas las obras, tengan el codigo de exposicion que tengan
|
cod_expo es un valor numérico o de cadena? si es numérico, sobraría en QuotedStr
Por otro lado, has mirado de debuggear a ver que es lo que hace exactamente? |
el valor cod_expo es string (letras y numeros), no consigo encontrar el debugbear
|
Esto tiene que funcionar pues es el ABC.
Solamente me queda de pensar, que tengas 2 Ttable conectados a la misma tabla y filtres uno y sin embargo el Quickreport lo conectes al otro? En cuanto a "debugear", lo que te quiere decir Cadetill, es que uses el depurador de Delphi para ver que valor tienen las variables en cada momento y así detectar en donde está el error. Un Saludo. |
Creo que he encontrado el problema, pero necesito vuestra ayuda a ver si puede ser esto, la cuestion es que cuando yo plso sobre la opcion de listado obras, me aparece una pantalla pequeña en la que me pide el codigo de la exposicion, en esta pantalla es donde yo pongo el filtro y el boton de filtrar que me manda directamente al Quickrep1.preview, y este quickrep1.preview lo enlazo directamente cvon la tabla obras, mis dudas son:
Deberia enlazarlo al filtro? Como puedo enlazarlo al filtro si estoy en otro form diferente. Gracias a todos, cuando lo consiga os debo una cervecita a todos. |
Vamos a ver, si tú filtras una tabla, sea donde sea y queda filtrada correctamente, igual te conviene poner una rejilla momentaneamente para ver si el filtro trabaja correctamente, si Quickreport lo conectas con esta tabla que esta filtrada, solamente te mostrará los registros que cumplan la condición puesta en le filtro.
Lo único que tendrás que tener el otro formulario en Uses de el actual para poder invocarlo desde éste. Un Saludo. Sino, pon el código completo de llamadas y filtros y verás como se arregla en un momento. |
He seguido vuestra sugerencia, he creado una tabla para que me muestre los datos que filtra y lo hace perfecto, gracias, voy a ver si consigo enlazar el QReport a esa tabla.
Muchas gracias |
Me siento un poco pesado ya , pero por mi orgullo y vuestra ayuda juro que lo sacare, a ver voy a ir poniendo codigo, primero pongo el filtro para que me aparezcan los datos que les pido
TObras.Filtered := False; TObras.Filter := 'cod_expo = ' + QuotedStr(Edit1.Text); TObras.Filtered := true; Me filtra genial y me aparecen los datos en unas celdas, que estan unidas a la tabla filtrada, me sale genial, si cambio de exposicion y todo, vamos que he echo millones de pruebas y me sale genial. Pero a cuestion, en otro form he insertado el Qreport, pero no encuentro la manera de enlazarlo con la tabla filtrada que se encuentra en otro form diferente. Gracias por vuestra ayuda de verdad. |
Pues mira es fácil, lo que tienes que hacer es en el form en donde se halla QuickReport tienes que hacer:
File - Use Unit y eliges el formulario en donde se halla la tabla filtrada con su Dataset correspondiente. Ahora y para ello conviene que tengas el formulario abierto y la tabla activa, une la propiedad Dataset de tu Quickreport con la tabla en cuestión. Siguiente paso a tu Quickreport le añades encabezado de columna y detalle, en el detalle te bajas un par de QrDbText y los conectas al mismo dataset y a uno de los campos, que para hacer la prueba son más que suficiente, y ahora en tiempo de diseño, si haces doble clic sobre la parte superior de la hoja podrás ver en tiempo de diseño los datos en la vista previa de Quickreport. Un Saludo. |
Millones de gracias a todos por haberme ayudado a conseguir que funcione.
Un saludo y hasta la proxima |
| La franja horaria es GMT +2. Ahora son las 06:48:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi