Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Relatório Master Detalhes


Eder

Pergunta

Ola..pessoal...tenho que montar um relatorio no meu ver muito dificil....no quick.

tenho que mostrar assim:

[b]AJUSTE DE VIAGEM [/b]

PLACA_VEICULO
===========
----------------------------------------------------------------------
ABASTECIMENTOS
----------------------------------------------------------------------
data          litros 
----------------------------------------------------------------------
30/06/07    20
01/07/07    30
------------------
TOTAL........50
---------------------------------------------------------------------
DESPESAS DE VIAGEM
----------------------------------------------------------------------
data          valor
----------------------------------------------------------------------
30/06/07     15,00
01/07/07     30,00
----------------------
TOTAL.........45,00
----------------------------------------------------------------------
É bem completo...nunca fiz tão complexo...assim.. tou tentato montar e já consegui listar os dados..certinho...ta completinho.....porem os abastecimentos e as despesas de viagem estão duplicando....exatamento ao nr de registros ele duplica.. é um relatorio que manipula um monte de tabelas, motoristas, veiculos, historico etc... Não sei porque duplica........alguém poderia me dar uma luz. minha query ta assim:
select * from AJUSTE, VEI, ROTA, MOTORIS, ABA, POSTO, VALORES, HISTO where 
(ajuste.codvei = vei.codvei) and (ajuste.codrota = rota.codrot) 
and (ajuste.codmot = motoris.codmot) and (ajuste.codigo = "38")
and (ajuste.codigo = aba.codlan) and (aba.codpos = posto.codpos) 
and (ajuste.codigo = valores.codlan) and (valores.codhisto = histo.codhis) 
order by ajuste.codvei

muito Grato

Editado por Micheus
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Sugestão:

Trabalhe com uma consulta que traz os dados do veículo (trará o cabeçalho que você utiliza) e duas outras consultas, uma para os abastecimentos e outra para as despesas.

Então uma banda detalhe "correndo" pelo automóvel e duas sub-detalhes, cada uma com um dos outros datasets (utilize o group para cada sub-detalhe para montar seus respectivos headers).

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Sugestão:

Trabalhe com uma consulta que traz os dados do veículo (trará o cabeçalho que você utiliza) e duas outras consultas, uma para os abastecimentos e outra para as despesas.

Então uma banda detalhe "correndo" pelo automóvel e duas sub-detalhes, cada uma com um dos outros datasets (utilize o group para cada sub-detalhe para montar seus respectivos headers).

R. Carinha....você havia mencionado mais de uma consulta...então me veio a cabeça de colocar 3 queryes no form

no meu exemplo eu fiz assim:

1-QrGroup1> onde esta os dados do VEICULO - queryrep1=query1

select * from AJUSTE, VEI, ROTA, MOTORIS 
where (ajuste.codvei = vei.codvei) 
and (ajuste.codrota = rota.codrot) 
and (ajuste.codmot = motoris.codmot) 
and (ajuste.codigo = "38")
1-QRSubDetail1> onde estão os dados do ABASTECIMENTO - FooterBand=rbGroupFooter(abaixo) 1-rbGroupFooter>que é a banda onde servirá pra contar registros em tela e somatorio da banda acima - dataset=query 2
select * from AJUSTE, ABA, POSTO 
where (ajuste.codigo = aba.codlan) 
and (aba.codpos = posto.codpos) 
and (ajuste.codigo = "38")
1-QRSubDetail2> onde estao os dados das DESPESAS - FooterBand=rbGroupFooter(abaixo) 1-rbGroupFooter>que é a banda onde servirá pra contar registros em tela e somatorio da banda acima - dataset=query 3
select * from AJUSTE, VALORES, HISTO 
where (ajuste.codigo = valores.codlan) 
and (valores.codhisto = histo.codhis) 
and (ajuste.codigo = "38")
Note que sempre filtro o (ajuste.codigo = "38") em todas as queries pois é tabela AJUSTE é a mãe e a tabela aba(abastecimentos) e valores(despesas de viagem) são filhas. O relatório agora roda legal NÃO DUPLICA MAIS....porem nas rbGroupFooter que são as totalizadoras que fazem os somatorios dos itens....não soma....o resultado sai zero...nas duas rbGroupFooter(antes já não somava). até um QRSysData2=qrsDetailCount que serve pra contar os registros processados da o total de 1 uso assim pra somar QRExpr1:
sum(query3.valor)

Tens alguma ideia ....pra fazer este relatório somar....??

muito Grato

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe a demora em responder...tava muito ocupado estes dias atraz.. :)

Voce ligou as bandas Group nas respectivas SubDetail (propriedade FooterBand)?

R.: Não...eu só tenho uma Banda Group e 2 QRSubDetail

SubDetail e não adicionei...

Amigão..afinal na sua opinião...quais as bandas e quais as ligações devo usar pra montar este relatorio? Eu estou usando como menciono lá em cima deste tópico....Parece que é diferente do seu raciocionio

Grato

:(

Link para o comentário
Compartilhar em outros sites

  • 0

Esta poderia ser sua banda detalhe, pois contém os dados do veículo (seu dataset mestre neste relatório):

AJUSTE DE VIAGEM

PLACA_VEICULO
===========
Aqui teríamos um GroupBand para o 1º SubDetail
----------------------------------------------------------------------
ABASTECIMENTOS
----------------------------------------------------------------------
data          litros 
----------------------------------------------------------------------
Esta seria a sua banda SubDetail ligada ao dataset Abastecimentos e com a propriedade GroupHeader apontando para o groupband anterior e FooterBand apontando para a banda footer mais abaixo
30/06/07    20
01/07/07    30
Aqui teríamos um GroupFooter para o 1º SubDetail
------------------
TOTAL........50
Aqui teríamos um GroupBand para o 2º SubDetail
----------------------------------------------------------------------
DESPESAS DE VIAGEM
----------------------------------------------------------------------
data          valor
----------------------------------------------------------------------
Esta seria a sua banda SubDetail ligada ao dataset Despesas e com a propriedade GroupHeader apontando para o groupband anterior e FooterBand apontando para a banda footer mais abaixo
30/06/07     15,00
01/07/07     30,00
Aqui teríamos um GroupFooter para o 2º SubDetail
----------------------
TOTAL.........45,00
----------------------------------------------------------------------

Voce ligou as bandas Group nas respectivas SubDetail (propriedade FooterBand)?

R.: Não...eu só tenho uma Banda Group e 2 QRSubDetail

SubDetail e não adicionei...

Amigão..afinal na sua opinião...quais as bandas e quais as ligações devo usar pra montar este relatorio?

Eu estou usando como menciono lá em cima deste tópico....Parece que é diferente do seu raciocionio

Veja se com a explicação acima isto fica claro

Link para o comentário
Compartilhar em outros sites

  • 0

amigão..me enrrolei...rs.

algumas perguntinhas pra entender:

1-quando você se refere a uma group....é a bandtype=RBGroupHeader das QrBand( ou é a QRGROUP? da paleta quickreport)

2-você diz que:Esta seria a sua banda SubDetail ligada ao dataset Abastecimentos e com a propriedade GroupHeader apontando para o groupband anterior e FooterBand apontando para a banda footer mais abaixo.

R. Mas esta SubDetail é a da bandtype=rbsubdetail ou ( ou é a QRSUBDETAIL? Da peleta quickreport)

valeu.....muito Grato

Link para o comentário
Compartilhar em outros sites

  • 0
1-quando você se refere a uma group....é a bandtype=RBGroupHeader das QrBand( ou é a QRGROUP? da paleta quickreport)
Eu dou preferência por utilizar o TQRGroup, mas ambas deverão resultar na mesma coisa - são iguais na verdade. Acredito que co-existam por questões de compatibilidade, porque na versão inicial, adicionava-se uma banda e utilizava-se a propriedade BandType para definir de qual se tratava)

2-você diz que:Esta seria a sua banda SubDetail ligada ao dataset Abastecimentos e com a propriedade GroupHeader apontando para o groupband anterior e FooterBand apontando para a banda footer mais abaixo.

R. Mas esta SubDetail é a da bandtype=rbsubdetail ou ( ou é a QRSUBDETAIL? Da peleta quickreport)

Idem.

Lembre-se apenas que estes dataset's ligados a subdetail, deverão estar vinculados ao dataset master - seja via propriedade MasterSource ou outro método que filtre cada despesa e abastecimento para cada veículo.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Carinha....finalmente...deu certo...não exatamente como você me instruiu....mas acabei mexendo no componente Qrexp, que fazia a totalização da banda QrSubDetail1, e mudando apenas a propriedade deste componente chamada Master=QRSubDetail1 e também mudei o outro qrexp que totalizava a banda QrSubDetail2 ...coloquei Master=QRSubDetail2....ambas estavão apontadas pra quickrep1, por isto que sempre o total era 1..porque realmente se estava pra o quickrep1 teria que dar 1 mesmo...pois o filtro era 1 veiculo.

Mas Beleza..muito Grato pela ajuda....mais uma vez...valeu. :D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...