![]() |
Campo LookUp y Filtro !!!
Hola Foro !!!
Tengo el siguiente problemita: Tengo un campo LookUp en un componente ADOTable, pero sucede que en la tabla a la que hace referencia el campo LookUp pueden haber más de una coincidencias para mostrar, por lo que para ello utilizo un filtro para que sólo busque el valor que me interesa en dicha tabla, pero sucede que parece ser que el campos lookup ignora dicho filtro y busca en la tabla completa, mostrando un valor que no es el deseado, en este caso, la primera coincidencia que encuentra. Las gracias anticipadas, Víctor.- |
Qué otra forma alternativa podría utilizar para resolver este problema ???
Víctor.- |
Saludos
Como los filtras? Filter o SQL? |
Hola vtdeleon, gracias por contestar....
Te cuento que la forma original como lo estaba filtrando era usando la propiedad Filter del componente ADOTable al cual hace referencia el campo LookUp, pero en vista de no funcionar utilice tambien un ADOQuery y por medio a SQL hice el filtrado, apuntando claro está el campo LookUp al ADOQuery, pero me da el mismo resultado, es decir, no me está funcionando. Podría resolver el problema si el campo LookUp me permitiera hacer la búsqueda utilizando dos campos, ya que el mismo sólo permite hacerlo por medio a un campo. Víctor.- |
..........
|
Saludos
Aun tengo las ideas vagas, muestranos la sentenicas que usas y demas.... |
Tengo las siguientes tablas:
Facturas NumeroFactura IdCliente Fecha Monto Balance Etc... DetallesFacturas NumeroFactura Etc... Pagos NumeroPago Fecha Etc... DetallesPagos NumeroPago NumeroFactura Fecha BalanceFactura (En ese momento del pago) MontoAplicado Si nos fijamos, una factura en particular puede ser pagada por completo o por partes, en tal caso, si es por partes tendremos más de una transacción en la tabla DetallesPagos con el campo NumeroFactura igual, pero con el campo NumeroPago diferentes. Lo que hago es simplemente hacer un filtro ADOT.DetallesPagos.Filter := 'NumeroPago = '+ADOT.Pagos.FieldByNames('Numeros').AsString. Víctor.- |
Saludos
Te aseguraste que ADOT.Pagos.FieldByNames('Numeros').AsString. arroja dato. Prueba en tiempo de dise~o, asignale un numero que arroje por lo menos un registro. |
Si, hice esa prueba enviando un ShowMessage(ADOT.Pagos.FieldByNames('Numeros').AsString).
Víctor.- |
Saludos
Cita:
|
Cita:
|
Saludos
Parece que estamos en un chat, pero debes darnos resultados de tus pruebas. Ahora no se si ya funciono o no Aqui no cobramos por palabras:D |
Cita:
Ahora bien, hice las pruebas, tanto en tiempo de diseño como de ejecución y me mostraba los resultados sin ningún problema, es decir, el filtro funciona, tanto con Filter como con SQL. Hice también varias pruebas con campos LookUp y confirmo lo que te dije en un principio, los campos LookUp no asumen los filtrados, sino que se va directamente a la tabla en custión. Te pido de favor que hagas una prueba con campos LookUp donde haya más de una coincidencia y le apliques un filtro y vas el resultado. Las gracias anticipadas, Víctor.- |
1 Archivos Adjunto(s)
Salduos
Te enviare un ejemplo en la que me ha funcionado, tiene un codigo chapusero pero seguro lo mejoraras:D:D |
Vi el ejemplo, pero por más que lo revisé no vi donde haces uso de campos LookUp. Recuerda que estos campos son los que se pueden crear por el componente de acceso a los datos, es decir, este campo no existe en la tabla de la base de datos, sino que es un campo que se crea cuando la aplicación está en ejecución.
Víctor |
Tambien lo puedes crear en diseño.
Doble clic a tu tabla/consulta, Add Field, y ahí especificas que es un campo LookUp. saludos |
Saludos
Cita:
Cita:
|
Cita:
Víctor.- |
Cita:
Aunque con el ejemplo que me das no puedo aplicarlo a mi problemita, ya que como te dije, tengo varias coincidencias en la tabla donde busca el LookUp, te agradezco tu gran colaboración. En realidad creo que el que ha fallado soy yo, ya que bastaba con dedicar un poquito de tiempo a leer el Help. Tomado de la ayuda: 8. Choose from the Result Field drop-down list a field in the lookup dataset to return as the value of the lookup field you are creating. To return values from more than one field in the lookup dataset, enter field names directly instead. Separate multiple field names with semicolons. Víctor.- |
La franja horaria es GMT +2. Ahora son las 18:15:10. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi