Dúvida - Retorno de valores do Subreport para ReportPai

Bom dia a todos os colegas! Tudo bem?

Quero pedir mais uma super ajudar!

Tenho um relatório pai que tem dois sub relatórios (dois filhos). Estou tentando retornar o valor total de uma soma de valores da coluna (através de variável: soma) do filho 02 para o Pai, mas não estou conseguindo!
Ela (variável do sub-report) não aparece na listagem de varáveis de retorno mesmo ela estando criada lá no sub relatório!
image
Deve estar faltando alguma configuração das variáveis de retorno(está no filho 2) e a que vai receber(está no pai) e não estou sabendo qual é!?!?!?

Já procurei na internet e, até o momento, não consegui!

Vocês teriam algum tutorial sobre retorno de valores dos sub relatórios para o relatório Pai?

Desde já agradeço!

Você deve informar o nome da variável que está no subrrelatório. Exemplo:

No relatório pai tua cria uma variável para receber o valor do subrrelatório.
Name: varRelPai
Variable Class: java.math.BigDecimal
Calculation: Nothing
Reset Type: None
Increment Type: None

No sub…, a sua variável…

No relatório principal, ao clicar sobre o Sub:
Propriedades -> Return Values
Subretport Variable: digite o nome da sua variável do subreport
Destination Variable: varRelPai

Ilustrando:

No relatório Pai:
image

image

No Sub:
image

image

Ajustando as variáveis:

1 curtida

Boa tarde!
Existe algum jeito de somar os valores totais da variável do subreport?
Tipo, a minha consulta retorna duas ou mais listas de negociação de valores. Cada negociação tem seu total.
Tenho que pegar o somatório do total das listas do subreport e levar para o reportPai.
Já tentei de algumas formas, mas não tenho idéia de como fazer direito!
Poderia, mais uma vez, me ajudar?

A melhor forma de fazer isso é usar JRBeanCollectionDataSource.
Você faz uma ou mais consultas direto no java, processa tudo o que precisa no java e envia tudo pronto para o relatório.

1 curtida

Bom dia Darlan! Td bem?
Não estou mexendo diretamente no JAVA. Estou com Query’s do Banco e fazendo os Report’s.
Então, teria que fazer isso no Banco já! Certo?
E só levar a resposta para o Report!
Seria isso?
Mto obrigada pela ajuda!

Jothar, bom dia!
Amei sua resposta. Referente ao meu primeiro problema, resolveu demais!
Muito obrigada!
Agora só falta o segundo! Risos!

Eu acho que o jasper não dá suporte a mais de um relatório. Então, seria necessário invocar um sum ou algo do tipo.
Porém, ainda assim, prefiro fazer no java.

1 curtida

Então @Daniellecd, eu creio que colocar muita responsabilidade no relatório pode lhe trazer problemas futuros, como crash ou lentidão. Quanto ao problema em si (se entendi bem), creio que não haja como fazer dessa forma, trazer o somatório já pronto, pois o relatório pai é o única ligação que há entre os subrrelatórios (é a base). O que tu pode fazer é trazer os diferentes valores e colocar numa variável do relatório pai. Exemplo (não fidedigno):

varRelPai = varRelSub1.add(varRelSub2);

Agora sobre fazer isso no banco, creio que dê, fazendo uma procedure, por exemplo. Resta saber se te atende.