Fórum Dblookupcombobox Como usar? #314481

28/02/2006

0

Boa tarde Amigos da lista,

Já procurei em toda parte, mas a verdade é que até o momento não entendi como devo usar o DBLookupComboBox para chamar um campo de um outro formulário. É o seguinte tenho dois Form de Cadastro: ÓRGÃO e SETOR com os seguintes campos:

Form ÓRGÃO (ID_ORG, N_ORG)

Form SETOR (ID_SET, N_SET, TITULAR, FONE, ID_ORG)

O que gostaria era que o campo ID_ORG no Form SETOR chamasse os nomes dos órgãos no FORM ÓRGÃO, deixando prático para o usuário só escolher. Uso Delphi 7 + IBO (IBOQuery) + FIREBIRD. O que tenho que fazer? Procurado na net e o que pude entender que devo usar os seguintes componentes no Form SETOR, não sei se estou certo, um QUERY, um DATASOURCE e o DBLookupComboBox, configurando os seguintes campos:

QUERY, campos: Aqui está a minha maior dúvida, pois não sei como configurar. A verdade é que em cada FORM já tem um Query, onde faço a ligação no DATA MODULE onde esta o IBODATABASE e o IBOTRANSACTION. Tenho que Colocar outro Query e nesse colocar no campo SQL o código sql (Select ID_ORG, N_ORG from ORGAO)?

DATASOURCE, nesse seria o campo DATASET chamado a QUERY (SETOR ou ÓRGÃO)?

DBLOOKUPCOMBOBOX e esse? Seria os campos abaixo?

LIST SOURCE : Aqui devo conectar com o DataSource do FORM?
LISTFIELD : Aqui o campo que deverá ser visualizado para escolha, no caso, N_ORG?
KEYFIELD: Aqui o campo chave primária o ID_ORG ou é ID_SET?
DATASOUCE: Seria o QUERY do FORM SETOR ou do FORM ÓRGÃO?
DATFIELD: E esse o campo chave estrangeira que no caso acho que é o ID_ORG do Form SETOR?

Obrigado pela atenção e espero ter feito entender.


Jrcosmoluis

Jrcosmoluis

Responder

Posts

01/03/2006

Paullsoftware

aqui vc vai ver um artigo de como usar esse componente:

[url]http://www.clubedelphi.net/novo/Colunistas/everson/03.asp[/url]

e aqui você pode baixar um exemplo do uso desse mesmo componente!
[url]http://www.clubedelphi.net/novo/Colunistas/everson/dbLookupComboBox.zip[/url]

espero ter te ajudado, qq dúvida posta ai! :wink:


Responder

Gostei + 0

02/03/2006

Jrcosmoluis

Paulo,

Obrigado pela grande dica, mas a verdade é que não conseguir colocado pra ele funcionando 100¬, porque não estou conseguindo fazer com que possa escolher na lista visualizada. Aparecem todos os nomes, mas só o primeiro tem como reverter essa situação?


Responder

Gostei + 0

02/03/2006

Paullsoftware

mostra as estruturas(campo) das tuas tabelas ai..
pode ser um erro de relacionamento!


Responder

Gostei + 0

05/03/2006

Jrcosmoluis

Paulo,

Esse é a estrutura das duas tabelas em questão:

Tabela ORGÃO

CREATE TABLE ORGAO(
ID_ORG INTEGER NOT NULL,
N_ORG VARCHAR (150) NOT NULL,
CONSTRAINT ORGAO_ID_ORG_PK PRIMARY KEY (ID_ORG))

Tabela Setor

CREATE TABLE SETOR(
ID_SET INTEGER NOT NULL,
N_SET VARCHAR (100) NOT NULL,
CHEFE VARCHAR (70),
FONE VARCHAR (14),
ID_ORG INTEGER NOT NULL,
CONSTRAINT SETOR_ID_SET_PK PRIMARY KEY (ID_SET))

Relacionamento

ALTER TABLE SETOR
ADD CONSTRAINT
SETOR_ID_ORG_PK FOREIGN KEY (ID_ORG) REFERENCES
ORGAO (ID_ORG)

Queria colocar minha Unit do form Setor aqui como anexo, mas não sei como fazer isso. Outro detalhe é que estava usando query, mudei para table, mas mesmo assim deu o mesmo problema... a verdade é que estou cometendo algum error e não tenho idéia do que seja... coisa de iniciante.

Valeu


Responder

Gostei + 0

06/03/2006

Paullsoftware

então cara vc faz como mostra no exemplo...
aqui vc vai ver um artigo de como usar esse componente: http://www.clubedelphi.net/novo/Colunistas/everson/03.asp e aqui você pode baixar um exemplo do uso desse mesmo componente! http://www.clubedelphi.net/novo/Colunistas/everson/dbLookupComboBox.zip espero ter te ajudado, qq dúvida posta ai!


na tabela de setores vc vai Fields Editor e clica em New Field, em name coloque o nome ´Ordgao´ por exemplo, em type coloque ´String´ em size coloque o tamanho do campo, em Field type coloque Lookup e depois faça:

Key Fields coloque ID_ORG da tabela SETOR
DataSet coloque Orgao
Lookup Key coloque ID_Org da tabela Orgao
Result Field coloque N_Orgao...

assim acho que vai funcionar...
para ficar melhor sua lista do DBLoockupComboBox aponte ele para uma Query com essa estrutura na SQL:
SELECT * FROM ORGAO
ORDER BY N_ORG

assim a lista fica em ordem alfabetica...

espero ter ajudado a solucionar seu problema! :wink:


Responder

Gostei + 0

14/03/2006

Jrcosmoluis

Paulo,

Valeu pela grande dica... eu conseguir fazer agora esta uma beleza.


Responder

Gostei + 0

14/03/2006

Jrcosmoluis

Paulo,

Valeu pela grande dica... eu conseguir fazer agora esta uma beleza.


Responder

Gostei + 0

14/03/2006

Paullsoftware

não foi nada [b:a36d767b3b]jrcosmoluis[/b:a36d767b3b],
estamos aqui para nos ajudar-mos! :wink:


Responder

Gostei + 0

14/03/2006

Jrcosmoluis

não foi nada [b:4fadaf927a]jrcosmoluis[/b:4fadaf927a], estamos aqui para nos ajudar-mos! :wink:


Obrigado, fique certo que depois de estudar muito e ganhar conhecimentos maiores, farei a mesma coisa com os que estão iniciando como eu, dessa forma contribuindo com a Fórum... valeu mesmo. Agora não querendo abusar eu te pergunto: Se eu colocasse em um outro form esse campo que fiz o lookup, no caso ID_ORG, e quisesse chamar os setores que estão cadastrado, é claro, referente a cada item do DBLookupComboBox ficando mais ou menos assim:

Dblookupcombobox_NOME_ORGÃO
Dblookupcombobox_NOME_SETOR

Assim que fosse escolhido um dos órgãos nesse DBLookupComboBox carregasse os setores correspondentes, conforme o cadastro, no outro combobox. Tem como fazer isso?

Mais uma vez obrigado pela grande ajuda...

Valeu


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar