[RESOLVIDO]Retorno de variável de um Sub-Relatorio para o Principal no iReport

10 respostas
R

Ola.

Estou começando a fazer relatórios, preciso se ajuda.
Estou com a seguinte situação, possuo um relatório principal com um agrupamento, no “detail” eu tenho um sub relatório,
esse sub relatório também possui um agrupamento. No sub relatório eu tenho um “field” “valor” que é um Double, a minha
necessidade é que eu preciso mostrar no relatório principal a soma de todos os registro do sub relatório.
Porém não sei qual a melhor forma de fazer isso, se devo somar esses valores por agrupamento no sub-relatório e em outra
variável somar esses totais por grupo(este já tente e não obtive sucesso), ou se tem alguma forma de fazer a soma de todos
os registros do sub independente do grupo e passá-los para o principal?

Obrigado!

10 Respostas

B

Você tem certeza de que precisa de um sub-relatório, não pode colocar todas as informações no relatório principal?

Pois se há uma forma de não usar sub-relatórios, não use.

R

Talvez, é que tenho dois agrupamentos, por isso coloquei dentro do agrupamento principal o sub-relatório.
Você sugere que coloque então um agrupamento dentro do outro ao invés de um sub-relatório? Serái isto?

C

Boa tarde

Olha como falou nosso amigo “blackout” vc teria q ver se realmente precisa desse subrelatorio, se realmente for preciso vc tera q criar o grupo dai tu cria uma variavel em variable class. dai vc retorna esse valor do subrelatorio.

t+ espero ter ajudado

B

Sim, quer dizer, mais ou menos isso.

Você também precisa que um agrupamento esteja dentro de outro?
Não usar sub-relatórios significa menos trabalho pra você mais pra frente, ou pra quem pegar o relatório que você fez!

Talvez se você explicar o contexto, podemos discutir melhor se é necessário realmente o sub-relatório ou até mesmo os agrupamentos.
Complementando, você não vai conseguir colocar agrupamentos sobre agrupamentos, o iReport não permite isso!

Abraços

R

Olá pessoal vou ser bem específico.
Estou desenvolvendo um relatório de boletim de caixa.
Portanto eu tenho uma lista de contas e uma lista de lançamentos contábeis.
Pra cada item desta lista de contas tem um parametro que eu passo para o relatório que é a data, parametro
esse que é responsavel pelo primeiro grupo que eu tenho que é por “data”. Dentro deste grupo eu vou listar
todos os lançamentos contabeis desta data agrupados pela conta(esta informação eu tenho nos lançamentos contabeis).
Dai venho a ideia de criar dentro do grupo “data” um sub-relatório que contenha um grupo por “conta”.
E o objetivo é somar todos lançamentos contábeis e mostar no relatório principal.

O relatório seria assim:

data: xxxxx (grupo data)

conta 1 (grupo conta)

lançamento 1(lançamentos)

lançamento 2

  conta 2

lançamento 3

Abraços

B

Ok, pelo que eu entendi, cada conta tem a sua lista de lançamentos contábeis né.

Imagino que as duas listas tenham o mesmo datasource, ou seja, você traz as duas listas prontas da sua aplicação para o iReport. Se esse for o caso, você realmente não precisa de um sub-relatório. Mas vai precisar do agrupamento sim.

Faça o seguinte, crie um agrupamento só, que será referente à lista de contas.
A lista de lançamentos contábeis ficarão no “detail”. Não será necessário um agrupamento pra lançamentos contábeis.

Então na prática vai ficar da seguinte maneira:

Title
Page Header
Column Header
Contas Group Header 1 - (“Contas” é o nome que você deu, “Group Header 1” é o nome que o iReport coloca depois)
Detail
Column Footer
Page Footer

Se não ficou muito claro, fala que eu tento explicar de uma outra maneira.

R

“blackout” agradeço muito seu interesse em me ajudar…
Então vamos adiante.
Como você citou anteriormente até funcionaria se eu não tivesse que agrupar pela data também,
que é o grupo principal, dentro de cada registro do grupo data posso ter “n” lançamentos agrupados pela conta,
sendo que também posso ter várias datas diferentes, pelo que você citou eu teria o agrupamento apenas pela conta, certo?!

B

Eita, esqueci da data, vamos lá…

Pra isso criaremos então outro agrupamento, então ficaria da seguinte maneira:

Title
Page Header
Column Header
Contas Group Header 1
Data Group Header 1
Detail
Column Footer
Page Footer

Dessa maneira, vai acontecer o seguinte. Você vai ter os lançamentos, que estão em uma determinada data, que por sua vez está em uma determinada conta.
Na prática, você não está criando um agrupamento (data) DENTRO de outro (contas), você criara esse agrupamento entre o agrupamento de contas e a banda do detail.

Eu esqueci de falar outra coisa, quando você criar o agrupamento, nas propriedades desse agrupamento tem uma propriedade chamada Group Expression, nessa propriedade coloque a váriavel que você criou para aquele agrupamento, no caso da conta, será algo como “$F{conta}”. No caso da data "$F{data}.

Deu pra entender? Qualquer coisa posta aí, vamos conversando.

Abraços!

R

Ola,

Pessoal agradeço muito a ajuda de vocês.
"blackout " consegui resolver o meu problema utilizando “Scriptlet”.
Com ele eu apenas pego a totais dos valores no Sub-Relatório, e no relatório principal os somo.
Por indicação de um amigo conheci “Scriptlet”, até então desconhecido para mim, porém muito
interessante e útil a sua utilização.

Obrigado!

B

Bacana, edita o título do post colocando um [RESOLVIDO] então… abração!

Criado 5 de outubro de 2010
Ultima resposta 8 de out. de 2010
Respostas 10
Participantes 3