Fórum Ordenando DBGrid Master/Detail #315467
08/03/2006
0
1) Utilizo uma tabela chamada PRODUTOS. Nela eu tenho o cadastro de todos os produtos da empresa.
2) Acabo de criar uma nova tabela chamada RETALHOS. Essa tabela é composta de 3 atributos: CODIGO (auto-incremento), PRODUTO (integer) e TAM_RETALHO (float).
As tabelas se relacionam através de Master/Detail, onde PRODUTOS é a MasterSource. Para tanto, tive que criar um Index chamado IDX_RETALHO, que contém o campo PRODUTO da tabela RETALHOS. Ou seja, o campo PRODUTO da tabela RETALHOS se relaciona com o campo CODIGO da tabela PRODUTO. Até aí, beleza.
Agora, pra mostrar isso na tela, me pediram para que a lista de retalhos de cada produto apareça no form, juntamente com a ficha do produto. Sem problemas.
Além disso, me pediram pra ordenar os retalhos, não importa se ascendente ou descendente. O problema é esse: não consigo fazer isso no DBGrid porque já existe um outro Index na tabela RETALHOS (que está ligado em PRODUTO, não em TAM_RETALHO). Além disso, tentei criar uma Query, mas ele mostra todos os retalhos de todos os produtos, e não apenas do produto aberto na ficha.
Alguém me dá uma luz? ^^
Rafaelpuff
Curtir tópico
+ 0Posts
08/03/2006
Sremulador
Gostei + 0
09/03/2006
Marco Salles
Mas voltemos
Voce so quer a consulta ou vai querer escrever , modificar , inserir dados na tabela Detalhe , via esse formulario
Gostei + 0
09/03/2006
Paullsoftware
no AffterScroll do Master faça:
With QyRetalhos do
begin
close;
Sql.Clear;
sql.Add(´Select * From Retalhos Where Produto=:CodProduto Order by Produto´).
ParamByName(´CodProduto´).AsInteger := TabelaDeProdutosCodigo.AsInteger;
prepare;
open;
end;
Agora sempre que vc mexer na sua tabela de produtos ele vai filtrar e mostrar somente os dados pertecentes ao codigo atual....
Espero ter ajudado! :wink:
Gostei + 0
10/03/2006
Rafaelpuff
with qRETALHOS do begin Close; SQL.Clear; SQL.Add(´select * from RETALHOS where PRODUTO = :CodProduto order by RETALHO´); ParamByName(´CodProduto´).AsInteger := DM.tbPRODUTOSCODIGO.AsInteger; Prepare; Open; end;
PaullSoftware, muito obrigado meeesmo, era bem disso que eu precisava. Foi só colocar a ordenação por retalho naquele código que você me passou e funcionou perfeito. Obrigadão, de verdade! ^^
Gostei + 0
10/03/2006
Paullsoftware
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)