QReport. Exibir dados de uma tabela relacionada a outra.

Delphi

09/10/2004

Eu sei que isso é meio básico, possivelmente todo mund oaqui sabe fazer e tal, mas preciso fazer um join que relaciona vários registros de uma tabela ( vou chamar de t2, pela ordem queuso) com um registro de outra(t1), e queria saber como faço para mostrar todos os registros de t2 relacionados aquele registro de t1, sem ficar repetindo o mesmo registro de t1.
Será que alguém pode me explicar como fazer isso? Eu tentei usar QRGroup( ou algo assim, agora esqueci o nome) com o GroupHeader e uma ChildBand(do QRGroup) e ele só me mostra um dos registros de t2.


Carlos_n

Carlos_n

Curtidas 0

Respostas

Dbergkamps

Dbergkamps

09/10/2004

Carlos,
Também uso um relatório parecido com este. Veja se esta instrução de SQL pode lhe ajudar.

SELECT Vendas.CODIGO, Vendas.NOTA, Vendas.SERIE, Vendas.VENDEDOR, Vendas.VALOR_TOTAL,
Vendas.DATA, Vendas.´QTD. PROD.´, Vendas.CLIENTE,Vendas.TIPODESCONTO, Vendas.VALORDESCONTO,
Vendas.VALOR_LIQ, Vendas.PERCENTUAL, Produtos.NOTA, Produtos.CODIGO, Produtos.DESCRICAO,
Produtos.´VR. UNT´, Produtos.´VR. TOTAL´, Produtos.QTD, Produtos.SERIE, Vendas.TIPOPAGAMENTO´)
FROM ´VENDAS.db´ Vendas´
INNER JOIN ´PRODUTOS.db´ Produtos
ON (Produtos.NOTA = Vendas.NOTA)
WHERE Produtos.NOTA =
(CurrtoStr(DataModule1.TBVendasNOTA.Value));
DataModule1.QYNotaVenda.Open;
RelNotaVenda.QuickRep1.Preview;
OBS.: Neste caso, uso duas tabelas (produtos e vendas). Se quer uma boa dica para construir instruções SQL, vá pelo SQL Builder (Botão Direito na Query e depois clique em SQL Builder). Lá vc pode relacionar tabelas pelo mesmo modo do Acess (arrastando os campos de uma tabela e soltando dentro do campo da outra tabela relacionada).
Qualquer dúvida, mande os campos da tabela pra ver se posso te ajudar


GOSTEI 0
Carlos_n

Carlos_n

09/10/2004

Criar o SQL não é problema, o negócio é só mostrar uma vez os dados da tabela 1, enqanto mostrando todos os registros da tabela 2 relacionados a ele.
O que realmente preciso é de ajuda com o QReport, não o SQL.
De qualquer jeito obridado por tentar.


GOSTEI 0
Dbergkamps

Dbergkamps

09/10/2004

Podemos lhe ajudar se vc puder enviar os fontes do para montar o relatório.
No meu, eu uso um Column Header e um Detail.


GOSTEI 0
Carlos_n

Carlos_n

09/10/2004

Foi o que me disseram pra usar, mas o detail só tá mostrando um registro, e o cara viajou, não dá pra pedir ajuda.
A estrutura é algo assim( vou simplificar um pouco):
tabela_1(titulares de um clube):
Registro
Nome
Endereco
Telefone ...(é o bastante)
tabela_2(dependentes):
Registro
Nome
Parentesco(armazenado por código)(deve ser o bastante)
tabela_3(de tipos de parentesco):
codigo
descricao

O SQL:
select * from tabela_1, tabela_2, tabela_3 where tabela_1.registro=tabela_2.registro
and tabela_2.parentesco=tabela_3.codigo


Consegui mostrar o group header os campos da tabela_1, mas no detail(ou era child, não lembro e estou no linux agora, não dá pra ver) só consegui mostrar um dependente, quando sei que são 4.
Alguma idéia?


GOSTEI 0
Martins

Martins

09/10/2004

COlega acho q posso lhe ajudar...

vc poderia por gentileza postar aqui os componentes do quickreport q fazem parte do seu relatório?

Obrigado!


GOSTEI 0
Carlos_n

Carlos_n

09/10/2004

Não precisa mais. O que fiz foi usar um QRGroupHeader pra mostrar os dados da tabela_1 e um Detail pra mostar os da tabela_2. Tão simples que nem pensei nisso.


GOSTEI 0
By_gandalf

By_gandalf

09/10/2004

e quando eu preciso fazer tres details,,
faço um qrgroup e coloco 3 details pra baixo,, nao consigo no qreport


GOSTEI 0
POSTAR