Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Combobox 2 datos seleccion 1 (https://www.clubdelphi.com/foros/showthread.php?t=95431)

kainchu3102 16-10-2021 18:02:29

Combobox 2 datos seleccion 1
 
Buenas gente necesito hacerles la siguiente consulta
en un combobox tengo dos datos de diferente tablas por ejemplo: ( id y nombreusuario) donde en la lista se me desplegan todos los id con los diferente usuarios.
Código Delphi [-]
  CBOX4.Items.Add(DataModule1.FDQCBOX_EST_TUR2.FieldbyName('id_usuario').AsString+'-'+(DataModule1.FDQCBOX_EST_TUR2.FieldbyName('nombre_usuario').AsString));
CONSULTA: como puede hacer para que cuando seleccione de la lista, el combobox se cargue solo con el nombre de usuario y no con el id???

Neftali [Germán.Estévez] 18-10-2021 12:05:39

Cita:

Empezado por kainchu3102 (Mensaje 543544)
CONSULTA: como puede hacer para que cuando seleccione de la lista, el combobox se cargue solo con el nombre de usuario y no con el id???

Si quieres decir que se visualize sólo el nombre, creo que no se puede.
Si es para utilizarlo en otro lugar del programa lo que puedes hacer es almacenar el elemento seleccionado en un string y eliminar la parte que no te interesa (el ID y el -).
No se si estas opciones te dan una solución válida.


Otra opción, es que almacenes en el combo sólo el nombre (que es lo que te interesa) y en una estructura alternativa, almacenes el ID+NOMBRE para cuando te haga falta. Por ejemplo, un TDictonary.


Código Delphi [-]
uses
  System.Generics.Collections;

procedure TForm1.FormCreate(Sender: TObject);
var
  dicc:TDictionary< Integer,String>;
begin
  dicc := TDictionary< Integer,String>.Create;
  dicc.Add(1, 'aa');
  dicc.Add(2, 'bb');

ecfisa 18-10-2021 17:53:36

Hola.

Otra opción similar es almacenar nombre_usuario como la cadena, y el id_usuario como entero aprovechando la función AddObject de TStrings.
Código Delphi [-]
...
   CBOX4.Items.AddObject(DataModule1.FDQCBOX_EST_TUR2.FieldByName('nombre_usuario').AsString,
                 TObject(DataModule1.FDQCBOX_EST_TUR2.FieldByName('id_usuario').AsInteger));
...

Y para recuperar el valor del ID del usuario,
Código Delphi [-]
procedure TForm1.CBOX4Change(Sender: TObject);
var
  id : Integer;
begin
  id := Integer(CBOX4.Items.Objects[CBOX4.ItemIndex]);
  ...
end;

Saludos :)


La franja horaria es GMT +2. Ahora son las 03:24:46.

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