Lookup recuperando 2 campos
olá, na tabela AGENDA eu tenho dois campos ID_DIA e ID_HORA, que são FK (chave estrangeiras) das tabelas DIAS e HORAS.
alguem sabe se tem como fazer num unico campo Lookup (na tabela AGENDA), recuperar as informaçoes desses dois campos (DIA - HORA)?
ex: no DBLookupComboBox (tabela_agenda.lookupDia) iria ter algo como:
Segunda-feira - 09:00:00
Terça-feira - 10:00:00
eu consigo fazer isso no OnGetTex do campo lookup da seguinte maneira:
o problema é que isso só retorna o dia - hora na propriedade text do DBLookupComboBox (como visto na figura abaixo), e eu gostaria que ao clicar e abrir o DBLookupComboBox o dia - hora ja estivessem ali.
abraços a todos!
alguem sabe se tem como fazer num unico campo Lookup (na tabela AGENDA), recuperar as informaçoes desses dois campos (DIA - HORA)?
ex: no DBLookupComboBox (tabela_agenda.lookupDia) iria ter algo como:
Segunda-feira - 09:00:00
Terça-feira - 10:00:00
eu consigo fazer isso no OnGetTex do campo lookup da seguinte maneira:
procedure TDM.cdsCliProdlkDiaGetText(Sender: TField; var Text: string; DisplayText: Boolean); begin text := cdsFuncHoralkDia.Text + ´ - ´ + cdsFuncHoralkHorario.Text; end;
o problema é que isso só retorna o dia - hora na propriedade text do DBLookupComboBox (como visto na figura abaixo), e eu gostaria que ao clicar e abrir o DBLookupComboBox o dia - hora ja estivessem ali.
abraços a todos!
Mahdak
Curtidas 0
Respostas
Aroldo Zanela
29/07/2008
Colega,
SeuDbLookup.ListField := ´campo1;campo2´;
GOSTEI 0
Mahdak
29/07/2008
[quote:d68950b07a=´Aroldo Zanela´]Colega,
[/quote:d68950b07a]
tudo bem Aroldo?
ai é que ta o problema, eu nao tenho o componente DBLookupComboBox meu campo lookup é um Combo no DBgrid e nao achei a propriedade ListField nem no campo lookup no ClientDataset, e nem no DBgrid...
e agora?
SeuDbLookup.ListField := ´campo1;campo2´;
tudo bem Aroldo?
ai é que ta o problema, eu nao tenho o componente DBLookupComboBox meu campo lookup é um Combo no DBgrid e nao achei a propriedade ListField nem no campo lookup no ClientDataset, e nem no DBgrid...
e agora?
GOSTEI 0
Aroldo Zanela
29/07/2008
Colega,
Neste caso, usando POG no evento OnCalcFields, faça a concatenação dos campos. Serve?
Neste caso, usando POG no evento OnCalcFields, faça a concatenação dos campos. Serve?
GOSTEI 0
Mahdak
29/07/2008
tava tudo tao mestre/detalhe pra eu ter que usar POG eheheh...
consegui resolver a questão utilizando a dica contida aqui: http://delphi.about.com/od/usedbvcl/l/aa101403b.htm e fazendo algumas modificações na estrutura de minhas tabelas.
valeu!
consegui resolver a questão utilizando a dica contida aqui: http://delphi.about.com/od/usedbvcl/l/aa101403b.htm e fazendo algumas modificações na estrutura de minhas tabelas.
// Obs: o segredo é ter um campo na tabela de origem com os valores que serao gravados no campo da tabela de destino. with DM.cdsFuncHora do begin FieldByName(´lkdia´).DisplayWidth:=15; FieldByName(´lkHorario´).DisplayWidth:=15; end; with cbHorario do begin DataSource := DM.dsCliProd; // ds que o registro será gravado (destino) ListSource := DM.dsFuncHora; // ds em que o lookup buscará os dados (origem) DataField := ´HORARIO´; // campo do DataSource que será gravado o registro (destino) ListField := ´lkdia;lkHorario´; // Lista de valores que será exibido no ComboBox (origem) KeyField := ´HORARIO´; // registro do ListSource que será enviado para o campo DataField (origem para Destino) Visible := false; DropDownWidth := 200; end; //-----------------------------------------------------
valeu!
GOSTEI 0
Mahdak
29/07/2008
aliás, quem quiser material relacionado a essa questão segue alguns links interessantes abaixo:
http://delphi.about.com/od/usedbvcl/l/aa081903a.htm
http://delphi.about.com/od/usedbvcl/l/aa092703a.htm
http://delphi.about.com/od/usedbvcl/l/aa121503a.htm
http://delphi.about.com/od/usedbvcl/l/aa101403b.htm
http://delphi.about.com/od/usedbvcl/l/aa081903a.htm
http://delphi.about.com/od/usedbvcl/l/aa092703a.htm
http://delphi.about.com/od/usedbvcl/l/aa121503a.htm
http://delphi.about.com/od/usedbvcl/l/aa101403b.htm
GOSTEI 0