Executar subrelatorio mesmo com o relatorio vazio

8 respostas
rafaelviny

boa tarde…

tenho um relatorio que sempre será exibido e preciso executar o subrelatorio que esta dentro dele para conseguir somar os saldos anteriores ao dia que foi informado pelo usuario.
existiria alguma forma de executar o subrelatorio de forma independente porem o relatorio pai deveria ser mostrado junto?, ou seja, caso o relatorio pai nao retorne valor eu passo os parametros para o relatorio filho e ele calcule o saldo anterior usando os parametros que informei.

grato.

8 Respostas

juceliohv

boa tarde rafaelviny ,

Você está usando o que para gerar o relatório? Jasper?

rafaelviny

boa tarde

sim

o jasper

juceliohv

Já tentou usar o mapa de parâmetros e passar um desses da pai para o filho através de parâmetros também?

HashMap map = new HashMap();
        map.put("cliente",param.getEmpresa().getNome_empresa());
        map.put("cnpj", param.getAvaliacao().getErrosPrinPK().getCod_cnpj());
        map.put("datahora",param.getAvaliacao().getErrosPrinPK().getDatahora());
        map.put("MaxResults",String.valueOf(param.getNumResult()));

JasperReport jasperReport = (JasperReport) JRLoader.loadObject(getClass().getResource("/relatorios/AvaliacaoDetalhada.jasper"));
.
.
.
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, connection);
rafaelviny

sim, faço assim…
o problema e a dependencia dos campos, pois tenho tabelas temporarias e mullti-seletores.
vou tentar ver uma possibilidade de mecher um pouco na arquitetura para ver se consigo fazer funcionar.
eu to tentando praticamente rodar um relatorio de tras para frente :confused:

juceliohv

Acho que entendi agora, você quer que o pai receba um parametro do filho. É isso?

rafaelviny

nao é isso…
é um relatorio muito complexo.

seria como em uma determinada situacao quando o relatorio pai nao tiver registro o filho iria trazer todos os saldos anteriores conforme os filtros selecionados

Gerva

Desculpa mas acho que ainda não entendi muito bem…

Bom pelo que imagino que é sua dúvida, o seu Sub vai receber os dados do relatório principal quando o mesmo tiver registros e mostrar outros dados quando não tiver correto?

Sendo assim você pode ter duas chamadas do Sub relatório, uma no detail para quando tiver registros no report principal e outra em uma banda que não seja detail, na “When no Data” por exemplo… Ai o conteúdo pode ser controlado por parâmetros em cada chamada.

rafaelviny

tive uma ideia, vou fazer com beans mas é quase isso Gerva
amanha irei falar com o gerente de projetos e com o analista pra ver como resolver isso

obrigado

Criado 28 de junho de 2011
Ultima resposta 28 de jun. de 2011
Respostas 8
Participantes 3