Agrupando dados em Relatórios

Delphi

27/12/2003

Como faço para mostrar os dados na forma de Mestre/Detalhe, utilizando somente SQL e o gerador de Relatório Fortes?

Por exemplo, o produto X tem ´n´ componentes, como mostrar o nome do Produto, depois seus componentes, depois outro produto e seus componentes e assim sucessivamente.


Fmd

Fmd

Curtidas 0

Respostas

Tnaires

Tnaires

27/12/2003

Opa td jóia?
Aprendi a fazer isso há pouco tempo atrás. O segredo está em montar a estrutura dos queries corretamente. Vamos supor q temos as seguintes tabelas:

TAB1
-ID_1
-CAMPO1
-CAMPO2

TAB2
-ID_2
-ID_1
-CAMPO1
-CAMPO2

As tabelas se relacionam pelo campo ID_1 (q é chave estrangeira d TAB2). Vamos montar um query para cada tabela, com os seguintes SQLs:

Query1: SELECT * FROM TAB1
Query2: SELECT * FROM TAB2 WHERE ID_1 = :ID_1

Agora vamos criar um datasource para a Query1, com nome de dsQuery1. Na propriedade DataSource do [u:4d7599eefd]Query2[/u:4d7599eefd], colocamos dsQuery1. Pronto, a estrutura dos queries está feita!
Crie outro datasource para o Query2 com o nome dsQuery2. Coloque uma banda Detail para o Query1, e associe a ela o dsQuery1. Finalmente, crie um SubDetail e associe a ele o dsQuery2.
Espero q funcione! Sucesso.


GOSTEI 0
Fmd

Fmd

27/12/2003

[b:66548e2b8e]tnaires[/b:66548e2b8e], infelizmente não funcionou. Ele não mostra o SubDetail.
Se você souber como fazer de uma outra forma eu agradeço.


GOSTEI 0
Tnaires

Tnaires

27/12/2003

Verifique se vc inseriu o seu subdetail [u:b634caf81a]dentro[/u:b634caf81a] do detail. Se inserir do lado de fora (como no quickreport) não funciona.
Abraços


GOSTEI 0
Fmd

Fmd

27/12/2003

Está tudo certo, porém não quer funcionar de maneira nenhuma.

Se você tiver algum exemplo de como eu faria para isso funcionar, poderia enviar uma cópia para o meu e-mail: felipemartins@terra.com.br

Obrigado pela atenção.


GOSTEI 0
Tnaires

Tnaires

27/12/2003

Pronto fmd, enviei o programa, com um exemplo do quickreport e outro do fortes.
Sucesso


GOSTEI 0
Tnaires

Tnaires

27/12/2003

Detalhe:
Vc vai ter q mudar o ConnectionString do ADOConnection.
Escolha o Driver Microsoft Jet e, no caminho do banco, digite ´./MasterDetail.mdb´ (sem as aspas). Desse jeito ele pega em qq pasta q vc botar.


GOSTEI 0
Fmd

Fmd

27/12/2003

Valeu [b:0dc690610b]tnaires[/b:0dc690610b]. Feliz Ano Novo e Sucesso. :lol:


GOSTEI 0
POSTAR