Grails + Ireport + subrelatórios
28/01/2013 18:24
0
Boa tarde senhores, recentemente utilizei este tutorial http://fernandohenrique.info/blog/?p=154 para realizar um relatório. Porém não consigo passar subrelatórios para ele, pois quando passo o resource do sub , ele repete o nome do subrelatorio. Por exemplo:

//caminho para o relatorio
String relatorioprincipal = grailsAttributes.getApplicationContext().getResource("/relatorio/RelatorioTROv0.3.7.jasper").getFile().toString()
//cria uma o qual vai conter todas os parametros do relatório
HashMap<String,String> parameters = new HashMap<String,String>();
parameters.put("SUBREPORT_DIR_ENVOLVIDOS", "/relatorio/RelatorioTROv0.3.5_subreport1_QualificacaoEnvolvidov.1.0.jasper");
parameters.put("SUBREPORT_DIR_SUB_GUARNICAO", "/relatorio/subRelatorioTRO_guarnicao.jasper");
parameters.put("SUBREPORT_DIR_GUARNICAO", "/relatorio/RelatorioTROv0.3_guarnicaov1.0.jasper");
parameters.put("SUBREPORT_DIR_VEICULO", "/relatorio/RelatorioTRO_subreport1_ApreensoesVeiculov0.1.jasper");
parameters.put("SUBREPORT_DIR_ENTORPECENTE", "/relatorio/RelatorioTRO_subreport1_ApreensoesEntorpecentes.1 .jasper");
parameters.put("SUBREPORT_DIR_ARMAS", "/relatorio/RelatorioTRO_subreport1_ApreensoesArmasv0.1.jasper");
parameters.put("SUBREPORT_DIR_MUNICAO", "/relatorio/RelatorioTRO_subreport1_ApreensoesMuniçõesv0.1.jasper");
parameters.put("SUBREPORT_DIR_MATERIAL", "/relatorio/RelatorioTRO_subreport1_ApreensoesMaterialv0.1.jasper");
//cria um datasource do jasper o qual vai armazenar todos os nossos dados
JRDataSource jdatasource = new JRBeanCollectionDataSource(dadosTro);


ele diz que não pode encontrar o resource e coloca o caminho como :/relatorio/RelatorioTRO_subreport1_ApreensoesEntorpecentes.1 .jasperRelatorioTRO_subreport1_ApreensoesEntorpecentes.1 .jasper
Tags: ireport sub relatório


1
Olá!

A "raiz" (o diretório base) do método
grailsAttribute.getApplicationContext().getResource()
é o diretório web-app... então, verifique que o arquivo que deseja pegar está dentro do diretório web-app.
29/01/2013 11:00


0
Está no web app... Só não encontra os sub-relatórios. Quando passo o caminho no código acima, ele compoe o caminho como sendo : "relatório/nome_do_relatorio_nome_do_relatorio.jasper", repetindo o nome do relatorio duas vezes... entendeu?
29/01/2013 16:48


1
Thiago, já experimentou o http://grails.org/plugins/jasper-response ?
Imagino que vai te tirar um trabalhão e facilitar muitíssimo o uso de subreports.


0
Olá, José Yoshiriro. Interessante o Pluguin. Mas a versão do Grails que utilizo é a 1.3.7 . Infelizmente só funciona da 2.0 pra frente... Mas vlw pela ajuda.
Alguém já fez algum relatório usando jasper que tenha sub-relatórios e passou pode postar um exemplo?
30/01/2013 12:05


0
Olá, Thiago.

Realmente testei e fiz o plugin em cima do Grail 2.x mas não acho que tenha usado algo que não permita o uso no Grails 1.x. Que tal tentar?


1
Pessoal,

Recomendo utilizarem o Grails Rendering Plugin ou diretamente a biblioteca XHTML Rendering (http://code.google.com/p/flying-saucer/).

Você monta seu relatório com HTML e CSS e ele exporta para vários formatos como PDF. É muito mais flexível e produtivo que qualquer outra forma de gerar relatórios PDF. Já utilizei para relatórios extremamente complexos, que certamente dariam muito trabalho com Jasper, mas com ele foi muito fácil.

Fica a dica.


2
Principalmente sub-relatórios. O XHTMLRenderer faz com um pé nas costas.

Você programa toda saída utilizando GSP, podendo usar tables por exemplo, e toda a liberdade do HTML/CSS. É realmente muito bom.


1
Realmente, é uma ótima ferramenta, mas o plugin jasper response pode reaproveitar relatórios legados. Imagine refazer uma aplicação grande mas manter os relatórios... Com eleé possíve reaproveitar os mesmos jaspers sem mexer em nada.
Agora, se for fazer "do zero", o XHTMLRenderer pode ser a melhor opção mesmo.


0
Muito obrigado pelo apoio. Vou tentar utilizar este plugin. Obrigado
31/01/2013 11:47



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto