Como Passar parametros de um subrelatorio para um relatorio master IREPORT

2,161 views
Skip to first unread message

Euclides Filizola

unread,
Aug 29, 2011, 7:52:38 AM8/29/11
to jav...@googlegroups.com
Bom dia pessoal, 

alguém sabe me dizer como faço para passar um parametro do tipo ArrayList de um Subrelatorio pra um relatorio master  e este último consiga enxergar e efetuar cálculos nele ?

exemplo: eu tenho um relatorio master X, e um subrelatori oY. esse subrelatorio será jogado nesse relatorio master X. Dae os parametros do subrelatorio vem bem bonitinhos e talz. E no relatorio master, eu preciso pegar um valor do subrelatorio e realizar calculos. como soma e multiplicar... 

O problema é que, no meu relatorio master, o parametro está do tipo Object[] ... e no subrelatorio.. aparece normalmente.. porém eu preciso pegar a soma daqueles valores e realizar calculos no relatorio master.... alguém teria como me ajudar ae. ? 



--
Euclides Filizola ® - Java Developer.



"What is a clever code for you? give me a sample."

"A própria idéia  de reconfigurar uma máquina para que ela faça uma quantidade aparentemente infinita de tarefas é forte e fascinante"

Carlos Brito

unread,
Aug 29, 2011, 9:36:26 AM8/29/11
to jav...@googlegroups.com
Bom dia.

Crie uma variável no teu subRelatório que fornece o ArrayList, como "lista". Depois, para obter esta variável no teu relatório principal, basta configura-lá na propriedade Return Values do relatório principal (Master), configurando desta forma:

Subreport variable -> nome da variável criada no teu sub relatório (o nome da variável do teu arrayList, como "lista"). 
Local destination variable - > variável local do teu relatório principal (master) que receberá o valor da variável de retorno (a lista do subRelatporio)  que serpa utilizada para realizares a lógica.

Abraços!



--
Você está recebendo esta mensagem porque se inscreveu no grupo "java.ce" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para jav...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para javace+un...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/javace?hl=pt-BR.



--
Carlos Brito

Euclides Filizola

unread,
Aug 29, 2011, 9:52:24 AM8/29/11
to jav...@googlegroups.com
Bom, acredito que seja isso que eu estou fazendo e meu sub relatorio não aparece. Saca só:

primeiramente eu tenho um List<> ok ? Dae como eu passo ele para o relatorio master. 


JRBeanCollectionDataSource lista = new JRBeanCollectionDataSource(listaDespesas);
map.put("listaDespesas", lista);

Dae oq acontece. Eu crio um sub-relatorio dentro desse meu relatorio master. 

e as opções q eu coloco nesse subrelatorio são as seguintes:

Expression: $P{listaDespesas}

Onde tem connection/Data source expression >>> use a data source expression.

e marco o selectBox "using cache". 

Na proxima aba chamada Subreport(Other) >> "C:\\Program Files (x86)\\JasperSoft\\iReport-3.0.0\\Relatorio_Despesas.jasper" .

beleza? 

Bom, oq acontece: o relatorio master enxerga o sub relatorio, o ireport reconhece os fields e os parametros tanto do sub como do master. 

porém na minha band detail não aparece nada, fica só um espaço em branco. Como se ele jogasse o sub-relatorio porém ele ficasse invisível. entende ? E o pior é que sexta-feira eu tinha testado e tava só o piupis... mas agora, não funfou ... da uma olhada ae.. 

Ramon Melo

unread,
Aug 29, 2011, 9:55:53 AM8/29/11
to jav...@googlegroups.com
O q  não aparecendo é uma variavel? bolim, muda a opção nas propriedades dela 'Evaluation Time', coloca band.. e joga a variavel na mesma banda do subrelatorio..

Euclides Filizola

unread,
Aug 29, 2011, 9:58:42 AM8/29/11
to jav...@googlegroups.com
as variáveis do subrelatorio estão na mesma band do relatorio master. ou seja, "detail".  E o objeto Subreport eu joguei dentro da band "detail" do relatorio master.

Ramon Melo

unread,
Aug 29, 2011, 10:07:38 AM8/29/11
to jav...@googlegroups.com
essa propriedade eh da variavel de retorno.. q vai receber no relatorio master..

Euclides Filizola

unread,
Aug 29, 2011, 11:04:01 AM8/29/11
to jav...@googlegroups.com
Problema resolvido pessoal. O erro não era em código, nem a forma de passar os fields e parameters..... apenas as extremidades do sub-relatorio não se encaixavam no objeto subreport do relatorio master. O ruim é que o ireport não dava erro algum... nem de dimensão, nem de conversão e nem de cast ..... Com isso eu diminui as dimensões do subrelatorio e a do objeto subreport do relatorio master e então apareceu. Realmente era muito estranho não aparecer nem a band "title" do sub-relatorio, que não era injetado valor algum nela... era apenas um label de apresentação...
Reply all
Reply to author
Forward
0 new messages