Fórum Dblookupcombobox Como usar? #314481
28/02/2006
0
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
Curtir tópico
+ 0Posts
01/03/2006
Paullsoftware
[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:
Gostei + 0
02/03/2006
Jrcosmoluis
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?
Gostei + 0
02/03/2006
Paullsoftware
pode ser um erro de relacionamento!
Gostei + 0
05/03/2006
Jrcosmoluis
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
Gostei + 0
06/03/2006
Paullsoftware
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:
Gostei + 0
14/03/2006
Jrcosmoluis
Valeu pela grande dica... eu conseguir fazer agora esta uma beleza.
Gostei + 0
14/03/2006
Jrcosmoluis
Valeu pela grande dica... eu conseguir fazer agora esta uma beleza.
Gostei + 0
14/03/2006
Paullsoftware
estamos aqui para nos ajudar-mos! :wink:
Gostei + 0
14/03/2006
Jrcosmoluis
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)