Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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 18-04-2014
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Question Dos Combobox o DBCombobox Master/Detail

Hola a todos,

Les escribo para aclarar la siguiente duda, es algo sencilla pero eh buscado y no veo como, como es que dos Combobox o DBCombobox aparezcan tipo master/detail?

ejemplo:
Base de datos:

Tabla 1: "Primer Combobox"
Animales
Frutas

Tabla 2: "Segundo Combobox"
Perro
Gato
Manzana
Pera

Entonces si en el combobox 1, selecciono Animales, en el combobox dos solo salen: Perro y gato.

Etc....

Saludos!
Responder Con Cita
  #2  
Antiguo 18-04-2014
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 feliz-58.

Una opción para dos TComboBox:
Código Delphi [-]
const
  ANIMAL = 0;
  FRUTA  = 1;
  //...
var
  TS1: TStrings;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with ComboBox1 do
  begin
    AddItem('Animales',TObject(ANIMAL));
    AddItem('Frutas',TObject(FRUTA));
    //...
  end;
  TS1:= TStringList.Create;
  TS1.AddObject('Perro',TObject(ANIMAL));
  TS1.AddObject('Manzana',TObject(FRUTA));
  TS1.AddObject('Gato',TObject(ANIMAL));
  TS1.AddObject('Pera',TObject(FRUTA));
  TS1.AddObject('Loro',TObject(ANIMAL));
  TS1.AddObject('Uva',TObject(FRUTA));
  //...
  ComboBox1.Text:= EmptyStr;
  ComboBox2.Text:= EmptyStr;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  i: Integer;
begin
  with ComboBox2 do
  begin
    Items.Clear;
    for i:= 0 to TS1.Count-1 do
      if Integer(TS1.Objects[i]) = Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]) then
       Items.Add(TS1[i])
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  TS1.Free;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 18-04-2014
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola feliz-58.

Una opción para dos TComboBox:
Código Delphi [-]
const
  ANIMAL = 0;
  FRUTA  = 1;
  //...
var
  TS1: TStrings;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with ComboBox1 do
  begin
    AddItem('Animales',TObject(ANIMAL));
    AddItem('Frutas',TObject(FRUTA));
    //...
  end;
  TS1:= TStringList.Create;
  TS1.AddObject('Perro',TObject(ANIMAL));
  TS1.AddObject('Manzana',TObject(FRUTA));
  TS1.AddObject('Gato',TObject(ANIMAL));
  TS1.AddObject('Pera',TObject(FRUTA));
  TS1.AddObject('Loro',TObject(ANIMAL));
  TS1.AddObject('Uva',TObject(FRUTA));
  //...
  ComboBox1.Text:= EmptyStr;
  ComboBox2.Text:= EmptyStr;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  i: Integer;
begin
  with ComboBox2 do
  begin
    Items.Clear;
    for i:= 0 to TS1.Count-1 do
      if Integer(TS1.Objects[i]) = Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]) then
       Items.Add(TS1[i])
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  TS1.Free;
end;

Saludos
y reconozco tu dedicación a responder en este club Ecfisa, Te felicito, Gracias!

No hay una forma que use bases de datos .-.
Responder Con Cita
  #4  
Antiguo 18-04-2014
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 feliz-58.

Supongamos que tenes las tablas:
Código SQL [-]
CREATE TABLE GENERO (
  ID         INTEGER,
  NOMBRE     VARCHAR(30),
  ESPECIE_ID INTEGER,
  CONSTRAINT PK_GENERO PRIMARY KEY (ID)
);
 
CREATE TABLE ESPECIES (
  ID         INTEGER,
  NOMBRE     VARCHAR(30),
  ESPECIE_ID INTEGER,
  CONSTRAINT PK_ESPECIES PRIMARY KEY (ID)
);

Agrega dos componentes Query (TQuery, TIBQuery, etc) y lo siguiente:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  with IBQueryGenero do
  begin
    Close;
    SQL.Text:= 'SELECT * FROM GENERO';
    Open;
  end;
  with IBQueryEspecies do
  begin
    Close;
    SQL.Clear;
    SQL.Text:= 'SELECT * FROM ESPECIES WHERE ESPECIE_ID = :ESPECIE_ID';
    DataSource:= dsGenero; // DataSource asociado a IBQueryGenero
    Open;
  end;
end;
Y ya tenes establecida la relación master/detail para usarla con cualquier data control (DBGrid's por ejemplo).

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Master/Detail adrall SQL 3 22-07-2011 17:43:30
DBLookupComboBoxs Master/Detail o Detail/Master yusnerqui OOP 5 29-07-2005 18:40:20
master/detail, imprimiendo master en cada hoja acalderonr Impresión 4 29-11-2003 14:46:07
interbase:¿como crear un master-detail-detail? ElSanto24 Firebird e Interbase 2 22-10-2003 10:24:45
Master/Detail/Detail/Detail/etc... hgiacobone Tablas planas 2 24-07-2003 17:20:31


La franja horaria es GMT +2. Ahora son las 13:42:59.


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