QReport. Exibir dados de uma tabela relacionada a outra.
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.
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
Curtidas 0
Respostas
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
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
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.
O que realmente preciso é de ajuda com o QReport, não o SQL.
De qualquer jeito obridado por tentar.
GOSTEI 0
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.
No meu, eu uso um Column Header e um Detail.
GOSTEI 0
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?
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
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!
vc poderia por gentileza postar aqui os componentes do quickreport q fazem parte do seu relatório?
Obrigado!
GOSTEI 0
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
09/10/2004
e quando eu preciso fazer tres details,,
faço um qrgroup e coloco 3 details pra baixo,, nao consigo no qreport
faço um qrgroup e coloco 3 details pra baixo,, nao consigo no qreport
GOSTEI 0