Fórum master/detail no IBX #266250
20/01/2005
0
olá,
eu fiz uma aplicação de vendas, tenho um form com a tabela de VENDAS e ITENS DE VENDA... quando vou inserir um novo cliente a tabela de ITENS DE VENDA continua com os itens do cliente anterior...
quando eu usava TTable dava certo, eu usava o recurso MASTER/DETAIL
agora eu uso componentes da paleta IBX... IBQuery, IBUpdate e Datasource... como faço para utilizar o recurso master/detail com esse componentes... ou algo que funcione na minh aplicação?????
uso interbase 6 e delphi 6
eu fiz uma aplicação de vendas, tenho um form com a tabela de VENDAS e ITENS DE VENDA... quando vou inserir um novo cliente a tabela de ITENS DE VENDA continua com os itens do cliente anterior...
quando eu usava TTable dava certo, eu usava o recurso MASTER/DETAIL
agora eu uso componentes da paleta IBX... IBQuery, IBUpdate e Datasource... como faço para utilizar o recurso master/detail com esse componentes... ou algo que funcione na minh aplicação?????
uso interbase 6 e delphi 6
Rafael Santana
Curtir tópico
+ 0
Responder
Posts
21/01/2005
Isabelct
Tente o seguinte:
Na sua query detalhe, na propriedade DataSource, selecione ali o DataSource que aponta para a query mestre.
Ajuste também a consulta da sua query detalhe, deixando-a mais ou menos assim:
Instrução SQL na tabela mestre:
Instrução SQL na tabela detalhe:
O ´segredo´ do Mestre-Detalhe está na condição Where. CAMPOCHAVEESTRANGEIRA é o campo que faz a ligação entre a tabela mestre e a tabela detalhe. Você tem que dizer que ele deve ser igual ao campo código da tabela mestre (CODIGO, no caso, é o nome do campo chave primária da sua tabela mestre).
Deve funcionar. Caso não seja isso que você precisa, retorna pra cá!
Na sua query detalhe, na propriedade DataSource, selecione ali o DataSource que aponta para a query mestre.
QueryDetalhe.DataSource := DataSourceMaster;
Ajuste também a consulta da sua query detalhe, deixando-a mais ou menos assim:
Instrução SQL na tabela mestre:
SELECT CODIGO, NOME FROM TABELAMESTRE
Instrução SQL na tabela detalhe:
SELECT CAMPO1, CAMPO2 FROM TABELADETALHE WHERE CAMPOCHAVEESTRANGEIRA = :CODIGO
O ´segredo´ do Mestre-Detalhe está na condição Where. CAMPOCHAVEESTRANGEIRA é o campo que faz a ligação entre a tabela mestre e a tabela detalhe. Você tem que dizer que ele deve ser igual ao campo código da tabela mestre (CODIGO, no caso, é o nome do campo chave primária da sua tabela mestre).
Deve funcionar. Caso não seja isso que você precisa, retorna pra cá!
Responder
Gostei + 0
21/01/2005
Rafael Santana
muito obrigado...deu certinho sua idéia...
t+
t+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)