Foros Club Delphi

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

raco 08-02-2005 22:19:25

DBLookupComboBox
 
Hola!!

a ver si alguien me puede ayudar, quiero hacer que en un DBLookupComboBox hacer que se seleccione un registro determinado, por ejemplo, tengo un DBLookupComboBox al que le asigno con un query los nombres de unos empleados:

daniel carrillo
david morales
julieta gomez
etc..

y quiero que se posicione en daniel carrillo, se puede hacer esto?, quisiera saber si existe alguna forma de posicionarlo por el nombre o tengo que hacerlo por el indice (ListFieldIndex) o q se yo, gracias.

ramiretor 08-02-2005 23:38:49

Hola
La propiedad KeyField te permite posicionar el DBLookupComboBox en el renglon que gustes:

Código Delphi [-]
MiDBLookupComboBox.KeyField := ValorDeseado;

Espero te sirva
Saludos a todos

raco 08-02-2005 23:58:25

ayuda con DBLookupComboBox
 
es que no se si asi es como debe ser, tengo esta linea DBLookupComboBox1.KeyField:='daniel carrillo';

el campo esta guardado en la tabla tal cual como lo pongo y lleno el DBLookupComboBox antes de aplicar esta linea y me dice que el campo daniel carrillo no se ha encontrado. Asi es como lo debo de poner, como String?

gracias.

roman 09-02-2005 01:48:42

En KeyField únicamente podrás poner valores que correspondan al campo que hayas especificado en KeyField. Lo que te dice ramiretor es complentamente correcto pero me parece que no tienes en claro cómo usar la componente.

En lo referente a lo que lista la componente hay tres propiedades básicas: ListSource, ListField y KeyField. ListSource apunta al DataSet (Table, Query, etc.) de donde tomes los valores. ListField es el campo que quieres que aparezca en el combo y KeyField es la llave primaria de la tabla.

Para cambiar el elemento listado en el combo debes asignar algún valor a KeyValue que corresponda a un valor de KeyField. Da la impresión de que en tu caso, el nombre de la persona es lo que tienes asignado en ListField y no en KeyField. Si quieres cambiar el elemento a partir del nombre (ListField) lo que puedes hacer es primero un Locate en la tabla para colocarla en el registro adecuado y entonces asignar a KeyField el valor del campo KeyField correspondiente:

Código Delphi [-]
if Query1.Locate('nombre', 'daniel carrillo', []) then
  DBLookupComboBox1.KeyValue := Query1.FieldByName(llave primaria).AsInteger;

// Saludos

raco 09-02-2005 02:19:53

DBLookupComboBox.keyvalue
 
gracias, lo que queria poner en el DBLookupComboBox era el nombre de un supervisor o gerente de acuerdo con lo que necesita el programa q estoy haciendo, si tenia bien las otras propiedades y si sabia como usarlas ;) , solo q creo q no me supe explicar.:p

ListSource:=DataSource2 (q tiene asignado el query de mi consulta)
ListField:=Nombre (q es el campo de la tabla)
KeyField:=Nombre

lo que yo queria hacer era que se ubicara solo (como indice) en el nombre que le pusiera (el nombre de usuario con el q accesan al sistema), este nombre, no necesito comprobar que exista x q ya lo hice ya q es de la forma que entran al sistema. :D Gracias, me sirvio lo de keyvalue. :D

DBLookupComboBox1.KeyValue:='Cristian Ramirez'; :)

de nuevo Gracias por contestarme ramiretor y roman


La franja horaria es GMT +2. Ahora son las 14:57: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