Fórum Relatorio QReport Master Detail Complicado (eu acho) #194057
10/11/2003
0
SELECT TBHOSPEDAGEM.ID, TBHOSPEDAGEM.HSDATAENT, TBHOSPEDAGEM.HSDATASAI, TBAPTO.APNUMERO, TBHOSPEDE.HONOME, TBHOSPEDE.HOFONE, TBEMPRESA.EMNOME, TBEMPRESA.EMFONE, TBPAGAMENTO.PGDATA, TBPAGAMENTO.PGVALOR,TBPAGAMENTO.PGTIPO
FROM TBAPTO
INNER JOIN TBHOSPEDAGEM ON TBAPTO.ID = TBHOSPEDAGEM.HSAPTO_ID
INNER JOIN TBHOSPACOMP ON TBHOSPEDAGEM.ID = TBHOSPACOMP.HAIDHOSP
LEFT JOIN TBEMPRESA ON TBHOSPEDAGEM.HSEMPR_ID = TBEMPRESA.ID
LEFT JOIN TBHOSPEDE ON TBHOSPACOMP.HAIDACOM = TBHOSPEDE.ID
LEFT JOIN TBPAGAMENTO ON TBHOSPEDAGEM.ID = TBPAGAMENTO.PGIDHOSP
WHERE TBHOSPEDAGEM.ID = 68
Por ter bastantes tabelas com diferentes registros (um para muitos), estou com problemas para retornar isto no qreport através de uma query (duplicidade de registros). Por tanto, gostaria que os senhores me ajudassem a configurar esta consulta com Tables (ou IBTables, estou usando IB) e master detail. Não saco muito Relatorios nem qreport, mas pelo que andei pesquisando, vou precisar de uma table para cada tabela e um datasource para a tabela principal. O que não sei fazer é configurar a propriedade Master/Detail das tables, alguem poderia me explicar??
O que tenho:
TBHOSPEDAGEM (Tabela principal) com ID (Chave primaria)
TBHOSPEDAGEM Recebe o ID da tabela TBEMPRESA (Se ouver)
TBHOSPACOMP Recebe o ID da tabela principal e o ID da tabela Hospede (um para muitos e muitos para um)
TBPAGAMENTO recebe o ID da tabela TBPAGAMENTO (um para muitos)
E ai galera? deu pra entender? Como configuro as IBTables Propriedade Master/Detail?
Dá pra desenrolar esse relaótio!?!?!?
Rafaelunp
Curtir tópico
+ 0Posts
10/11/2003
Galouco
Isso resolve a duplicidade dos dados, porém se quiser usar uma tabela ou query pra cada tabela vou dar uma dica de como fazer isso, mas usando query, espero que aude.
Existe uma tabela pai de todas, então adicione uma query para cada tabela e para a tabela pai, adicione um datasource.(Estou imaginando que tenho somente tabelas ligadas a essa tabela ´pai´, não estou imaginando que as outras tabelas ligam umas nas outras, mas o exemplo tratado servirá para este caso se ele acontecer).
Bom, adicionado as querys, então agora adicione em cada uma delas um SQL selecionando os seus respectivos registros, mas com uma diferença, na clausula WHERE de cada uma(tirando a tabela pai) adicione:
...WHERE tb_filha.id = :id_pai
lembrando que o parâmetro ´:id_pai´ deve ser exatamente o nome da chave da tabela pai. Por exemplo, se temos a tabela pai chamada Clientes e sua chave chamada ID_CLIENTES deveremos adicionar ´:ID_CLIENTES´.
Terminado ligue o data source das outras querys no datasource da tabela pai.
Acho que isso resolve....
Abraços, quaquer coisa me fale....
Albert Sena Taure
albert.ninf@newtonpaiva.br
Gostei + 0
10/11/2003
Delphistar
ex :
Apartamento X[list:fa8d4a3bf1]
10/10 a 11/10 Cliente1
12/10 a 15/10 Cliente2 [/list:u:fa8d4a3bf1]
Apartamento Y[list:fa8d4a3bf1]
09/10 a 11/10 Cliente3[/list:u:fa8d4a3bf1]
eh mais ou menos isso que vc quer?
Gostei + 0
14/11/2003
Rafaelunp
Cara, seguinte:
fiz o que voce falou, mas o resultado obtido não foi o esperado.
Em um group header tenho os dados que não se repetirão, isto é, os dado da tabela pai.
Em um detail tenho os dados de tabelas diferentes e consequentemente independentes (Hospede e Pagamento).
Observei que se eu colocar no dataset do quickrep a query do hospede, me retorna os dados (no detail) da tabela hospede ok, mas os pagamentos aparecem repetidos. Se eu coloco no dataset a query pagamento aparece os dados ok, mas os hospedes repetidos, se eu coloco a query pai, aparece apenas o primeiro dado de cada query...
E agora? Onde está o pró?? :roll:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)