Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Lista desplegable dudas (https://www.clubdelphi.com/foros/showthread.php?t=52141)

lejia 11-01-2008 15:39:19

Lista desplegable dudas
 
Hola a tod@s, :).
TEngo un problema y no se como resolver.
Tengo un Query que lo creo que en tiempo de ejecucion.
Bien, me muesta en un DBGrid, los distintos campos, por ejemplo: codigo,articulo,precio,familia..

Lo que quiero poner es un campo cerca de la grilla, ya que dentro de ella no se puede, que sea desplegable, es decir, que el campo familia, pueda pinchar en ella, y me salga todas las posibles familias que hay, para yo elegir una de ellas.

Pues bien, he leido que se puede, usar, un TDBLookUpListBox,, pero no se como usarlo ni nada. Tiene varias propiedades, y necesito saber cual pongo en cada una de ellas. En Datasource, pongo el datasource del query. eso lo se. Pero y ano se mas. Gracias.. Espero contestacion.
Saludos a todos.

AzidRain 11-01-2008 17:16:12

En la ayuda de Delphi explica a detalle lo que quieres hacer, precisamente en el componenten TDBLookUpListBox.

A grosso modo, este componente requiere: un campo al que se va hacer el binding o enlace (el campo que representa), un datasource que apunta a la tabla que estas editando. Un datasource que apunta a la tabla que contiene los valores a mostrar en el combobox, un campo que se va a utilizar para mostrarse a partir de la tabla de referencia.

lejia 11-01-2008 18:16:16

Me que he quedado igual,, yo es que tengo borland c++, y es muy parecido a delphi, por eso quiero saber como es mas o menos el codigo..
Porque en la ayuda, no viene el tema del dblookuplistbox
Espero ayuda.

lejia 11-01-2008 18:17:44

ADemas, si te fijas, uso un query,, ,no una tabla, y el query es en tiempo de ejecucion..

eduarcol 11-01-2008 18:57:59

y quien dijo que eso no lo puedes hacer dentro del grid??, yo incluso llegue a meter un grid dentro de una celda de un grid, con un poco de ingenio todo se puede

lejia 12-01-2008 00:14:17

En esta vida se podrá hacer casi todo. Y mas con ingenio, pero yo ahora mismo eso lo tengo listo papeles.. Por lo menos ya se, que se puede poner un casilla del grid, que sea una lista desplegalbe, en tiempo de ejecucion del query., porque ya lo me has comentado. Ahora la cuestion es como,, Gracias..

keyboy 12-01-2008 00:46:40

Dentro de un DBGrid (o más específicamente, una casilla de un DBGrid) puedes presentar una lista desplegable sin mayores problemas. Para ello basta agregar un campo de tipo Lookup a la lista de campos del DataSet (el Query en tu caso).

Aunque desconozco la estructura de tus tablas, como es lógico, tendrás un tabla con el catálogo de familias, digamos

familia = (id, familia)

donde la llave primaria id corresponde con la llave foránea que tengas en la otra tabla, digamos familia_id, y familia es el nombre de la familia.

Asigna un componente Table que apunte a ese catálago de familias, digamos tblFamilia.

En el editor de campos del Query (menú contextual del componente) agrega todos los campos que quieras mostrar en el DBGrid, y luego agrega uno nuevo (opción New Field). En el cuadro de diálogo escribes el nombre que desees para el campo, por ejemplo, familia, lo declaras de tipo string y le asignas la longitud adecuada para abarcar el nombre de las familias.

En Field Type escoges, como es natural, el tipo Lookup.

La parte importante viene en la sección Lookup Definition. Ahí, apuntas Dataset al componente tblFamilia, ResultField al campo familia de la tabla familia, KeyField a la llave foránea en la tabla principal (familia_id) y Lookup Keys a la llave primaria de la tabla familia.

Una vez hecho esto, tu DBGrid mostrará el nuevo campo (el nombre de la familia) y cuando el usuario quiera editarlo, le aparecerá una lista desplegable con todas las familias.

Bye

lejia 14-01-2008 15:48:47

Hola, perdona mi torpeza, pero no me entero.
Si mi query, es en tiempo de ejecucion, no puedo crear un campo nuevo..
yo solo se, que en la consulta sql, llamo a los campos de mi consulta. por ejemplo: nombre articulo, lote, etc, familia. Donde se me visualiza en el grid, que no tiene columnas, porque solo funciona cuando salta la consulta sql..
Entonces en el grid, veo la consulta formulada, con los campos que yo he puesto en la consulta sql. Como hago para que sea desplegable ese campo, y me aparezcan las demas, familias y sea editable, como dices.. gracias...


La franja horaria es GMT +2. Ahora son las 03:57:27.

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