[RESOLVIDO] Passar caminho do Path para Subrelatório Jasper?
2 respostas
M
Metaleiro
[color=darkblue] Quando passo o caminho do relatório principal, faço o seguinte, criei um map com o nomes e diretório na pasta Web do meu projeto:
[/color]
HashMap map = new HashMap();
map.put(7L, "/report/programas.jrxml");
File reportFile = new File(context.getRequest().getServletRequest().getRealPath(map.get(7L).toString()));
[color=darkblue] Agora minha dúvida é como passar esse path para o “SUBREPORTDIR” que é onde está armazenado o caminho do subrelatório, sendo que como é um relatório Web ele nunca será contante ?
[/color]
->passo o caminho do sub-report para o relatório principal.
StringpathJasper=getServletContext().getRealPath("/WEB-INF/reports/")+"/";//caminho onde estão os arquivos . jasper Mapparametros=newHashMap();parametros.put("CAMINHOSUB",pathJasper+"subrelatorio.jasper");
Onde existe o parametro CAMINHOSUB no relatório pai, certo?
-> insiro o elemento subreport no relatório pai.
-> duplo clique no elemento, e na aba: Sub_relatório(Outro), classe de expressão do sub_relatório java.lang.String, Expressão de sub-relatório : $P{CAMINHOSUB}(o parâmetro passado) e na aba parametros do sub-relatório tem o botão “Copiar do mestre”, que copia todos parametros do relatório principal e passa para o sub.Atenção, lembre-se de criar os parametros do subrelatórios com os mesmos nomes.
Bom eu faço assim e é na WEB. Funciona tanto no servidor como em clientes…
Espero ter ajudado, abraço