Function para popular combobox

Delphi

09/04/2010

Boa Noite,
Estou querendo popular um combo com os dados de duas tabelas distintas,  e possivel ?
Se for, gostaria de faze-lo atraves de uma function (para nao colocar codigo sql no form).
Grato pelo apoio


_osw

_osw

Curtidas 0

Respostas

Carlos Mazzi

Carlos Mazzi

09/04/2010

Normalmente é possivel, atraves de UNION's, porem a estrutura de ambas as tabelas devem ser semelhantes entre si.   Ex:(MySQL)   (SELECT a FROM t1 WHERE a=10 AND B=1)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;       Mas poste , a sua estrutura assim podemos ajudar melhor no método de popular o seu combo.   Abraços++
 
GOSTEI 0
_osw

_osw

09/04/2010

  Boa Noite Carlos,
As tabelas são de estruturas diferentes.
Estou desenvolvendo um sistema simples de caixa/banco dentro de um sistema de contas a pagar/receber que já tinha uma tabela de banco/agência/conta corrente, criei uma tabela simples de caixa que tem a seguinte estrutura:
id integer (PK)
Codigo da empresa char(6)
descrição  varchar (40) Unique
data de abertura date >> para apurar o saldo
saldo numeric(11,9)  >> saldo até a data de abertura!

a tabela de conta corrente é assim:
Banco
Agência
empresa
numero da conta corrente
data de abertura da conta
saldo de abertura !

As estruturas são essas!
Grato pela força :)

GOSTEI 0
Emerson Nascimento

Emerson Nascimento

09/04/2010

acho que é preciso passar uma informação que deve ter alguma relevância neste tópico:

quais informações - e como - serão exibidas no combo?


GOSTEI 0
_osw

_osw

09/04/2010

Bem, eu so preciso mostrar o nome do caixa/banco e guardar o codigo para acesso.
GOSTEI 0
Wesley Batista

Wesley Batista

09/04/2010


Olá amigo, primeiramente você quer armazenar diversos valores certo ? Por que não cria um Objeto com a estrutura deseja e adiciona uma lista deste objeto no combobox ?


{Classe Cliente crie uma classe com a estrutura que você deseja armazenar no combobox. }


Type
  TCliente = class
  private
    Fcodigo: String;
    FSexo: String;
    FNome: String;
    procedure Setcodigo(const Value: String);
    procedure SetNome(const Value: String);
    procedure SetSexo(const Value: String);
  published

  public
    property codigo : String read Fcodigo write Setcodigo;
    property Nome : String read FNome write SetNome;
    property Sexo : String read FSexo write SetSexo;

  end;

{Agora implementando a rotina para armazenar no combobox}




{Agora implementando a rotina para armazenar no combobox
Observe que o combobox permite você adicionar objeto a ele, porém são referencias então dentro do loop da sua query, você terá que a todo momento que for ler um novo registro, não esqueça de criar o seu objeto novamente.
}



procedure TForm1.FormCreate(Sender: TObject);
Var
  C : TCliente;
  I: Integer;
begin
  C := TCliente.Create;
  C.codigo := '01';
  C.Nome   := 'Wesley';
  C.Sexo   := 'M';
  ComboBox1.Items.AddObject(C.Nome, C);

  C := TCliente.Create;
  C.codigo := '02';
  C.Nome   := 'Batista';
  C.Sexo   := 'M';
  ComboBox1.Items.AddObject(C.Nome, C);


  {Lendo o conteudo utilizando TypeCast}
  for I := 0 to ComboBox1.Items.Count - 1 do
  begin
    ShowMessage(TCliente(ComboBox1.Items.Objects[I]).codigo + #13 +
                TCliente(ComboBox1.Items.Objects[I]).Nome + #13 +
                TCliente(ComboBox1.Items.Objects[I]).Sexo + #13 );
  end;


end;






Espero te ajudado, qualquer dúvida estamos ae !!

Um abraço

Wesley Batista
e-mail : wesley@tdstecnologia.com.br
site : www.tdstecnologiarj.com.br

GOSTEI 0
_osw

_osw

09/04/2010

Boa Noite Wseley,

Obrigado pela dica!
Estou comecando a ver poo, e a sua dica foi bastante interessante!
GOSTEI 0
POSTAR