Fórum quickrep 3 tabelas mostrar 1 detail e depois outro tem como? #350769
18/12/2007
0
amigos to com um problemao aqui
tenho 3 tabelas, resumindo na verdade sao 7 tabelas associadas mas o problema ta nessas 3
ROMANEIO, TORASSERRADAS, MADEIRAPRODUZIDA
criei um sql
entao eu tenho [b:7e04e5d3d1]1[/b:7e04e5d3d1] romaneio com [b:7e04e5d3d1]n[/b:7e04e5d3d1] toras serradas e [b:7e04e5d3d1]n[/b:7e04e5d3d1] madeiraproduzida
preciso de um relatorio que sai assim
-dataproducao
-todas as toras serradas
-e no final do relatorio todas as madeiras produzidas
ja tentei de todas as maneiras mas nao consegui, os subdetails ele sai logo abaixo do detail
do jeito que ta meu sql ele sai
e o que eu quero é assim
Por favor se alguem puder me ajudar eu agradeço muito, ou pelo menos digam que é impossivel fazer isso no quickreport.
desde ja agradeço...
Delphi 7.0, firebird 1.5
tenho 3 tabelas, resumindo na verdade sao 7 tabelas associadas mas o problema ta nessas 3
ROMANEIO, TORASSERRADAS, MADEIRAPRODUZIDA
ROMANEIO
id
dataromaneio
____________________
TORASSERRADAS
id
idromaneio
numerotora
____________________
MADEIDAPRODUZIDA
id
idromaneio
idtorasserradas
descricaomadeira
criei um sql
´ select romaneio.*, torasserradas.*, madeiraproduzida.* from romaneio
left join torasserradas on torasserradas.idromaneio = romaneio.id
left join madeiraproduzida on madeiraproduzida.idtorasserradas = torasserradas.id
entao eu tenho [b:7e04e5d3d1]1[/b:7e04e5d3d1] romaneio com [b:7e04e5d3d1]n[/b:7e04e5d3d1] toras serradas e [b:7e04e5d3d1]n[/b:7e04e5d3d1] madeiraproduzida
preciso de um relatorio que sai assim
-dataproducao
-todas as toras serradas
-e no final do relatorio todas as madeiras produzidas
ja tentei de todas as maneiras mas nao consegui, os subdetails ele sai logo abaixo do detail
do jeito que ta meu sql ele sai
dataromaneio
tora1
madeiraproduzida1
madeiraproduzida2
tora2
madeiraproduzida1
madeiraproduzida2
tora3
madeiraproduzida1
madeiraproduzida2
e o que eu quero é assim
dataromaneio
tora1
tora2
tora3
madeiraproduzida1
madeiraproduzida2
Por favor se alguem puder me ajudar eu agradeço muito, ou pelo menos digam que é impossivel fazer isso no quickreport.
desde ja agradeço...
Delphi 7.0, firebird 1.5
Marcusbraga
Curtir tópico
+ 0
Responder
Posts
19/12/2007
Micheus
Sugestão:
- Utilize um dataset para cada tabela. Dê preferência a utilizar dataset´s do tipo Query;
- adicione um componente DataSource e ligue sua propriedade DataSet ao dataset Romaneio;
- nos datasets ´filhos´, como TorasSerradas e MadeiraProduzida, vc filtra (where) os dados, referenciando o ID em Romaneio. Ex.:
Mas é importante que o nome do parâmetro seja exatamente o nome do campo de onde iremos buscar o valor (neste caso Romaneio);
Para que este valor seja buscado do dataset ´pai´, definimos nos dataset´s ´filhos´ a propriedade DataSource apontando para o datasource que citei no início (ligado a Romaneio);
Coloque no seu relatório:
- 01 banda Detal;
- 02 bandas Sub-detail;
Configurando:
- defina o dataset Romaneio como fonte de dados do seu QuickRep (propriedade DataSet);
- utilize um componente DataSource ligado ao seu dataset Romaneio;
- nos seus datasets ´filhos´ ligue a propriedade DataSource ao componente anteriormente mencionado;
- antes de mostrar seu relatório, abra os datasets - todos. Assim, para cada linha movida no dataset ´pai´ (Romaneio), automaticamente serão filtrados os dataset´s ´filhos´;
- Na banda detalhe vc coloca os QRDBText´s a serem utilizados para mostrar os dados do Romaneio;
- Para cada banda Sub-Detail, vc define sua propriedade DataSet para apontar para o respectivo dataset (no seu exemplo, TorasSerradas na primeira e MadeiraProduzidas na segunda) e adiciona os QRDBText conforme necessário;
Se não esqueci de nada, seria isto.
Teste e dê um retorno.
Abraços
- Utilize um dataset para cada tabela. Dê preferência a utilizar dataset´s do tipo Query;
- adicione um componente DataSource e ligue sua propriedade DataSet ao dataset Romaneio;
- nos datasets ´filhos´, como TorasSerradas e MadeiraProduzida, vc filtra (where) os dados, referenciando o ID em Romaneio. Ex.:
... FROM TORASSERRADAS WHERE idromaneio = :id ...
Para que este valor seja buscado do dataset ´pai´, definimos nos dataset´s ´filhos´ a propriedade DataSource apontando para o datasource que citei no início (ligado a Romaneio);
Coloque no seu relatório:
- 01 banda Detal;
- 02 bandas Sub-detail;
Configurando:
- defina o dataset Romaneio como fonte de dados do seu QuickRep (propriedade DataSet);
- utilize um componente DataSource ligado ao seu dataset Romaneio;
- nos seus datasets ´filhos´ ligue a propriedade DataSource ao componente anteriormente mencionado;
- antes de mostrar seu relatório, abra os datasets - todos. Assim, para cada linha movida no dataset ´pai´ (Romaneio), automaticamente serão filtrados os dataset´s ´filhos´;
- Na banda detalhe vc coloca os QRDBText´s a serem utilizados para mostrar os dados do Romaneio;
- Para cada banda Sub-Detail, vc define sua propriedade DataSet para apontar para o respectivo dataset (no seu exemplo, TorasSerradas na primeira e MadeiraProduzidas na segunda) e adiciona os QRDBText conforme necessário;
Se não esqueci de nada, seria isto.
Teste e dê um retorno.
Abraços
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)