Fórum Dúvida agrupamento com QRGroup #269794
23/02/2005
0
Olá! Procurei no fórum, mas ninguém parece ter tido o mesmo problema que eu. Tenho uma IBQuery cuja SQL possui vários joins e no final ela me retorna os dados da seguinte forma:
GRUPO - PRODUTO - NOTA - QUANT - VALUNIT - TOTAL
-----------------------------------------------------------------
LATICINIOS - IOGURTE - 1059 - 10 - 1,2 - 12,00
PADARIA - PÃO - 854 - 100 - 0,20 - 20,00
etc...
Ou melhor, com uma só consulta eu já misturei os mestres e metalhes. Para o relatório eu sempre usei somente uma query me retornando esses dados. Eu tive que fazer com que o programa imprimisse os dados agrupados pelo grupo do produto. Exemplo abaixo:
//>>INICIO DA PAGINA
LATICINIOS
PRODUTO1 - NOTA - QUANT - VALUNIT - TOTAL
PRODUTO2 - NOTA - QUANT - VALUNIT - TOTAL
CARNES
PRODUTO1 - NOTA - QUANT - VALUNIT - TOTAL
PRODUTO2 - NOTA - QUANT - VALUNIT - TOTAL
//<<FIM DA PÁGINA
Para conseguir agrupar os dados usando somente uma query eu coloquei o QRGroup e coloquei o Expression dele para o campo ´GRUPO´ da query. Coloquei um QRSubDetail. A propriedade DataSet dele fica nula. Na hora de rodar é só abrir a query que tudo funciona. Na verdade eu nem sei porque funciona, afinal eu deixei o DataSet setado como nulo. Se eu colocar o DataSet para a Query os dados não ficam agrupados.
Bem, o importante é que sempre funcionou. O problema é que agora preciso colocar um somatório dos totais de cada grupo. Analisando o demo do QuickReport que vem com o Delphi vi que teria que usar uma band setada como GroupFooter. O problema é que por eu estar usando o SubDetail sem o DataSet setado o GroupFooter (com o QRExpression) não soma. Fica sempre zerado. Se eu setar o DataSet o QRGroup é que passa a não funcionar. Será que não existe uma maneira de fazer isso com apenas uma query? Em todos os tópicos que encontrei aqui no fórum a solução envolvia uma query mestre e outra detalhe. Será que eu vou trer que criar uma segunda Query para funcionar? Alguém já passou por algo parecido?
Até!
GRUPO - PRODUTO - NOTA - QUANT - VALUNIT - TOTAL
-----------------------------------------------------------------
LATICINIOS - IOGURTE - 1059 - 10 - 1,2 - 12,00
PADARIA - PÃO - 854 - 100 - 0,20 - 20,00
etc...
Ou melhor, com uma só consulta eu já misturei os mestres e metalhes. Para o relatório eu sempre usei somente uma query me retornando esses dados. Eu tive que fazer com que o programa imprimisse os dados agrupados pelo grupo do produto. Exemplo abaixo:
//>>INICIO DA PAGINA
LATICINIOS
PRODUTO1 - NOTA - QUANT - VALUNIT - TOTAL
PRODUTO2 - NOTA - QUANT - VALUNIT - TOTAL
CARNES
PRODUTO1 - NOTA - QUANT - VALUNIT - TOTAL
PRODUTO2 - NOTA - QUANT - VALUNIT - TOTAL
//<<FIM DA PÁGINA
Para conseguir agrupar os dados usando somente uma query eu coloquei o QRGroup e coloquei o Expression dele para o campo ´GRUPO´ da query. Coloquei um QRSubDetail. A propriedade DataSet dele fica nula. Na hora de rodar é só abrir a query que tudo funciona. Na verdade eu nem sei porque funciona, afinal eu deixei o DataSet setado como nulo. Se eu colocar o DataSet para a Query os dados não ficam agrupados.
Bem, o importante é que sempre funcionou. O problema é que agora preciso colocar um somatório dos totais de cada grupo. Analisando o demo do QuickReport que vem com o Delphi vi que teria que usar uma band setada como GroupFooter. O problema é que por eu estar usando o SubDetail sem o DataSet setado o GroupFooter (com o QRExpression) não soma. Fica sempre zerado. Se eu setar o DataSet o QRGroup é que passa a não funcionar. Será que não existe uma maneira de fazer isso com apenas uma query? Em todos os tópicos que encontrei aqui no fórum a solução envolvia uma query mestre e outra detalhe. Será que eu vou trer que criar uma segunda Query para funcionar? Alguém já passou por algo parecido?
Até!
Delphi32
Curtir tópico
+ 0
Responder
Posts
23/02/2005
Gandalf.nho
Na sua query tem uma cláusula ORDER BY ordenando pelo grupo? Se não, pode estar aí o problema de não agrupar se for setado o dataset do relatório
Responder
Gostei + 0
23/02/2005
Delphi32
Fiz essa e outras modificações na SQL. Na verdade, acabei criando uma query Mestre e outra Detalhe, mas ainda continuei tendo problema. O QRExpression não estava calculando nada. Isso porque apesar de usar duas Querys, eu continuei usando somente o QRGroup e o QRSubDetail. Adicionei no relatório uma band rbDetail com Heigth igual a 1 porque eu não tenho o que mostrar nessa band. Dessa forma passou a funcionar.
Com isso, cheguei a conclusão de que a band Detail é importante no funcionamento de relatórios com QRGroup só que não deixa de ser um mistério a necessidade de adicionar uma band que eu nem mesmo estou usando. Só está ali porque sem ela não funciona... hehehehe...
Valeu ae pela ajuda!!! Até!
Com isso, cheguei a conclusão de que a band Detail é importante no funcionamento de relatórios com QRGroup só que não deixa de ser um mistério a necessidade de adicionar uma band que eu nem mesmo estou usando. Só está ali porque sem ela não funciona... hehehehe...
Valeu ae pela ajuda!!! Até!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)