Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-02-2016
ciudad54 ciudad54 is offline
Miembro
 
Registrado: oct 2008
Posts: 27
Poder: 0
ciudad54 Va por buen camino
Question Dos comboBox combinados

Hola,

La situacion es la siguiente:
No se como tener dos combobox combinados para que al seleccionar un dato en el primero, solo me aparezcan los correspondientes en el segundo. Ejemplo

Combobox1 - Items:
1
2
3

al seleccionar el valor 1, en el combobox2 debe solamente aparecer :
1.1
1.2
1.3

Esto quiero hacerlo con una base de datos de médicos y especialidades, donde selecciono la especialidad y solo me aparecen los médicos de esa especialidad.

Gracias, espero puedan entender la idea.
Responder Con Cita
  #2  
Antiguo 10-02-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Busca informacion sobre maestro-detalle

Podes usar controles data-aware (los que empiezan con TDB...) o bien usar los "comunes" e implementar todo
Responder Con Cita
  #3  
Antiguo 10-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ciudad54.

Usando dos TComboBox podrías hacer:
Código Delphi [-]
// ComboBox1 = especialidad | ComboBox2 = medico

procedure TForm1.FormCreate(Sender: TObject);
begin
  qyEspec.Close;
  qyEspec.SQL.Text := 'SELECT ID, ESPEC FROM ESPECIALIDAD';
  qyEspec.Open;
  while not qyEspec.Eof do
  begin
    ComboBox1.AddItem(qyEspec.FieldByName('ESPEC').AsString,
      TObject(qyEspec.FieldByName('ID').AsInteger));
    qyEspec.Next;
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  cb: TComboBox;
begin
  cb := TComboBox(Sender);
  if cb.ItemIndex <> -1 then
  begin
    qyMedic.Close;
    qyMedic.SQL.Text := 'SELECT NOMBRE FROM MEDICO WHERE ESPEC_ID = :ID';
    qyMedic.ParamByName('ID').AsInteger := Integer(cb.Items.Objects[cb.ItemIndex]);
    qyMedic.Open;
    ComboBox2.Clear;
    while not qyMedic.Eof do
    begin
      ComboBox2.Items.Add(qyMedic.FieldByName('NOMBRE').AsString);
      qyMedic.Next;
    end;
  end;
end;

Pero resulta mucho mas simple usar dos TDBLoocupComboBox:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  qyEspec.Close;
  qyEspec.SQL.Text := 'SELECT ID, ESPEC FROM ESPECIALIDAD';
  qyEspec.Open;

  qyMedic.DataSource := dsEspec;   // TDataSource asociado al dataset especialidad

  DBLookupComboBox1.KeyField   := 'ID';
  DBLookupComboBox1.ListField  := 'ESPEC';
  DBLookupComboBox1.ListSource := dsEspec;

  DBLookupComboBox2.KeyField   := 'ID';
  DBLookupComboBox2.ListField  := 'NOMBRE';
  DBLookupComboBox2.ListSource := dsMedic;  // TDataSource asociado al dataset medico
end;

procedure TForm1.DBLookupComboBox1CloseUp(Sender: TObject);
begin
  qyMedic.Close;
  qyMedic.SQL.Text := 'SELECT ID, NOMBRE FROM MEDICO WHERE ESPEC_ID = :ID';
  qyMedic.Open;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 10-02-2016 a las 08:55:57.
Responder Con Cita
  #4  
Antiguo 15-02-2016
ciudad54 ciudad54 is offline
Miembro
 
Registrado: oct 2008
Posts: 27
Poder: 0
ciudad54 Va por buen camino
Talking

Excelente, me funciono perfecto!
Mil gracias!

Última edición por Casimiro Notevi fecha: 15-02-2016 a las 17:58:16.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con hotkeys combinados. carlosprotos Varios 1 24-11-2014 01:08:42
tablas conectadas a Combobox,al eliminar una,actualizar combobox sin reiniciar exe feliz-58 Varios 3 26-04-2013 17:16:05
Genero comboBox en dbgrid y cuando hago dos veces click desaparece el comboBox. mcalmanovici Varios 1 29-02-2012 16:09:15
como mostrar la ventana de lenar inten de un combobox en tiempo de un combobox gulder Varios 3 19-05-2007 20:55:58
campos llave combinados suppergus Varios 2 03-05-2005 00:32:38


La franja horaria es GMT +2. Ahora son las 14:40:25.


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
Copyright 1996-2007 Club Delphi