Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Campo LookUp y Filtro !!! (https://www.clubdelphi.com/foros/showthread.php?t=27172)

vpepen 14-11-2005 15:26:15

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.-

vpepen 16-11-2005 13:44:31

Qué otra forma alternativa podría utilizar para resolver este problema ???

Víctor.-

vtdeleon 16-11-2005 13:56:56

Saludos

Como los filtras? Filter o SQL?

vpepen 16-11-2005 16:10:14

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.-

vpepen 17-11-2005 16:48:24

..........

vtdeleon 17-11-2005 17:24:31

Saludos

Aun tengo las ideas vagas, muestranos la sentenicas que usas y demas....

vpepen 17-11-2005 18:43:11

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.-

vtdeleon 17-11-2005 20:40:25

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.

vpepen 18-11-2005 12:44:44

Si, hice esa prueba enviando un ShowMessage(ADOT.Pagos.FieldByNames('Numeros').AsString).

Víctor.-

vtdeleon 18-11-2005 14:01:08

Saludos
Cita:

Empezado por Yo
Prueba en tiempo de dise~o, asignale un numero que arroje por lo menos un registro.

Y esto? lo hiciste?

vpepen 18-11-2005 17:01:51

Cita:

Empezado por vtdeleon
SaludosY esto? lo hiciste?

Si lo hice !!!

vtdeleon 18-11-2005 17:37:15

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

vpepen 18-11-2005 17:43:30

Cita:

Empezado por vtdeleon
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

Concuerdo con eso !!!

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.-

vtdeleon 18-11-2005 18:27:01

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

vpepen 18-11-2005 18:33:07

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

Lepe 18-11-2005 19:27:01

Tambien lo puedes crear en diseño.

Doble clic a tu tabla/consulta, Add Field, y ahí especificas que es un campo LookUp.

saludos

vtdeleon 18-11-2005 19:55:12

Saludos
Cita:

Empezado por vpepen
Vi el ejemplo, pero por más que lo revisé no vi donde haces uso de campos LookUp.

El campo 'ID' es Lookup
Cita:

Empezado por Lepe
Tambien lo puedes crear en diseño.

Asi lo hice, no en ejecucion :o

vpepen 19-11-2005 12:27:30

Cita:

Empezado por Lepe
Tambien lo puedes crear en diseño.

Doble clic a tu tabla/consulta, Add Field, y ahí especificas que es un campo LookUp.

saludos

En realidad me refería a que es un campo que no utiliza espacio en disco como un campo de una tabla. Cuando me referí a que se "crea" en realidad traté de referirme a su utilización. :rolleyes:

Víctor.-

vpepen 19-11-2005 12:35:46

Cita:

Empezado por vtdeleon
Saludos
El campo 'ID' es Lookup Asi lo hice, no en ejecucion :o

Tienes razón vtdeleon, es LookUp :confused:

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 02:15:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi