Unificar vários relatórios num único PDF

Java

07/01/2011

Bom dia.   estou precisando de ajuda para a seguinte situação:   já tenho alguns relatórios prontos, porém surgiu a necessidade de imprimir esses relatórios num único PDF.   não sei se tem como fazer isso no próprio IREPORT, ou se preciso fazer direto no JAVA.   alguém já passou por essa situação?   Desde já agradeço qualquer ajuda.   Att.: R. Barcelos.
Barcelos.java

Barcelos.java

Curtidas 0

Respostas

Davi Costa

Davi Costa

07/01/2011

Cara não sei se seriam as melhores soluções,
uma é criar ese relatório ninja com todos os seus relatórios.
Outra solução é ler esses pdf gerados e unificá-los via Java.
Abaixo segue um link de como fazer isso, foca no exemplo da classe ParsingPDF:

https://www.devmedia.com.br/post-18843-Gerando-PDF--iText.html

Att Davi
GOSTEI 0
Barcelos.java

Barcelos.java

07/01/2011

Bom dia Davi.   Estou utilizando relatórios com o objeto, no caso do parsingPDF, deixa eu ver se entendi    o primeiro passo para usá-lo eu preciso criar um relatório em branco no ireport? e depois fazer cópias dos relatórios já existentes para este que criei em branco?   é isso?   segue abaixo código do relatório   public String geraRelsolicVo(String numSolic) throws Exception {
  try {
   SolicitacaoItemFacade solicItemFacade = new SolicitacaoItemImpl();
   
   List<SolicitacaoItem> solicItens = solicItemFacade
     .buscar(getNumSolicitacao());
   List<RelSolicitacaoVo> relSolicItemVo = new ArrayList<RelSolicitacaoVo>();
   for (SolicitacaoItem item : solicItens) {
    RelSolicitacaoVo relSolicVo = new RelSolicitacaoVo();     relSolicVo.setNumSolicitacao(item.getSolicitacao()
      .getNumSolicitacao());
    relSolicVo.setDatSolicitacao((item.getSolicitacao()
      .getDatSolicitacao()));
    relSolicVo.setDscSolicitacao(item.getSolicitacao()
      .getDscSolicitacao());
    relSolicVo.setDscTramite(item.getSolicitacao().getTramite()
      .getDscTramite());
    relSolicVo.setDscTipo(item.getSolicitacao().getTipo()
      .getDscTipo());
    relSolicVo.setDscHospital(item.getSolicitacao()
      .getDscHospital());
    
    relSolicItemVo.add(relSolicVo);
   }
   RelatorioUtil ru = RelatorioUtil.getInstance();
   ru.exibirRelatorio("RelSolicitacao.jasper", relSolicItemVo);
  } catch (JRException e) {
   MessagesUtil.inserirErro("Erro na Impressão.");
   e.printStackTrace();
   throw new RuntimeException(e);
  }
  return null;
 }  
Att R. Barcelos
GOSTEI 0
Davi Costa

Davi Costa

07/01/2011

O que eu sugeri foi o seguinte, vc gera todos seus relatórios em arquivos PDF e dpois vc cria um pdf lendo de todos esses pdfs já criados, gerando um único PDF, entendeu.

Mas n sei se é a melhor estratégia :/

Att Davi
GOSTEI 0
David Alberto

David Alberto

07/01/2011

Uma solução seria vc usar Ireport/japer. Muito facil de usar. Se queser posso fazer um tutorial rapido para vc.
GOSTEI 0
David Alberto

David Alberto

07/01/2011

Você pode fazer subrelatorios. Como no exemplo abaixo.
1 - Da dois clicks sobre a chamada para o subreport no mestre;
2 - Vai até a aba de SubReport(Other);
3 - Vai para a aba de SubReport Return Values;
4 - Adicione a variavel de retorno, definindo o nome que ela terá no relatório mestre e o nome que ela possui no sub relatório.

Se funcionar responda.
GOSTEI 0
Barcelos.java

Barcelos.java

07/01/2011

Olá Davi. Ainda não consegui, mas ach que estamos próximo:   seguinte só não consegui encontrar o item 2 - "Vai até a aba de SubReport(Other);
", acho que é por causa da versão do meu ireport(3.7.2).
1 - criei um relatorio chamado mestre.jrxml; 2 - no meu relatório mestre.jrxml criei uma variável chamada "numero" 2 - com o auxilio da paleta (Report Elements) cliquei e arrastei o componente Subreport dentro da band sumary do
meu relatório mestre, ou seja mestre.jrxml; 3 - nas propriedades do meu subreport fiz o passo 3 - propriedade return values 4 - no java implementei para chamar esse relatório mestre.jrxml  // 5 - RELATÓRIO PROCESSO
 public String geraRelProcessoVo(String numSolicitacao) throws Exception {
  try {
   
   // INSTANCIA A CLASSE DO VO
            List<RelProcessoVo> relProcessoVo = new ArrayList<RelProcessoVo>();    SolicitacaoItemFacade solicItemFacade = new SolicitacaoItemImpl();
   
   List<SolicitacaoItem> solicItens = solicItemFacade.buscar(getNumSolicitacao());
   
   for (SolicitacaoItem item : solicItens) {
    RelProcessoVo relSolicVo = new RelProcessoVo();     relSolicVo.setNumSolicitacao(item.getSolicitacao().getNumSolicitacao());
    relProcessoVo.add(relSolicVo);
   }
    
   
   RelatorioUtil ru = RelatorioUtil.getInstance();
   ru.exibirRelatorio("RelProcesso.jasper", relProcessoVo);
  } catch (JRException e) {
   MessagesUtil.inserirErro("Erro na Impressão.");
   e.printStackTrace();
   throw new RuntimeException(e);
  }
  return null;
 }  
GOSTEI 0
Barcelos.java

Barcelos.java

07/01/2011

deu esse erro na página:   type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: #{relGeralForm.geraRelatorio}: java.lang.RuntimeException: net.sf.jasperreports.engine.JRException: Subreport variable numSolicitacao not found. javax.faces.webapp.FacesServlet.service(FacesServlet.java:277) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) root cause javax.faces.FacesException: #{relGeralForm.geraRelatorio}: java.lang.RuntimeException: net.sf.jasperreports.engine.JRException: Subreport variable numSolicitacao not found. com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118) javax.faces.component.UICommand.broadcast(UICommand.java:387) org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324) org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299) org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256) org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469) com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) root cause javax.faces.el.EvaluationException: java.lang.RuntimeException: net.sf.jasperreports.engine.JRException: Subreport variable numSolicitacao not found. javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102) com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) javax.faces.component.UICommand.broadcast(UICommand.java:387) org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324) org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299) org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256) org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469) com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) root cause java.lang.RuntimeException: net.sf.jasperreports.engine.JRException: Subreport variable numSolicitacao not found. br.org.isgh.compras.forms.RelGeralForm.geraRelProcessoVo(RelGeralForm.java:452) br.org.isgh.compras.forms.RelGeralForm.geraRelatorio(RelGeralForm.java:162) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.apache.el.parser.AstValue.invoke(AstValue.java:131) org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) javax.faces.component.UICommand.broadcast(UICommand.java:387) org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324) org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299) org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256) org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469) com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) root cause net.sf.jasperreports.engine.JRException: Subreport variable numSolicitacao not found. net.sf.jasperreports.engine.fill.JRFillSubreport.checkReturnValues(JRFillSubreport.java:1040) net.sf.jasperreports.engine.fill.JRFillSubreport.validateReport(JRFillSubreport.java:971) net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:351) net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:263) net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258) net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499) net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummaryNoLastFooterSamePage(JRVerticalFiller.java:1065) net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummary(JRVerticalFiller.java:1030) net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportEnd(JRVerticalFiller.java:300) net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:134) net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:938) net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:860) net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84) net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624) net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540) net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:387) br.org.isgh.compras.util.RelatorioUtil.exibirRelatorio(RelatorioUtil.java:45) br.org.isgh.compras.util.RelatorioUtil.exibirRelatorio(RelatorioUtil.java:69) br.org.isgh.compras.forms.RelGeralForm.geraRelProcessoVo(RelGeralForm.java:448) br.org.isgh.compras.forms.RelGeralForm.geraRelatorio(RelGeralForm.java:162) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.apache.el.parser.AstValue.invoke(AstValue.java:131) org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) javax.faces.component.UICommand.broadcast(UICommand.java:387) org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324) org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299) org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256) org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469) com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
GOSTEI 0
Robson Teixeira

Robson Teixeira

07/01/2011

Olá Barcelos
   no java adicione a sua variavel dentro de 1 map as variaveis no caso
   map.put("numero",valor variavel); e informe ao jasper para que ele faza uso do valor
   na geração do seu relatorio fazo isso pois quando uso subreport eu passo o diretorio onde está o .jasper
   para que seja feito o relatorio com sucesso e no seu stacktrace postado o jasper não está achando o
   numSolicitacao verifique o mesmo.

att
  robson Passarella
GOSTEI 0
Barcelos.java

Barcelos.java

07/01/2011

Bom dia Robson.   tentei fazer com o Hashmap, mas ainda não deu certo.   mapProcesso = new HashMap<String, Solicitacao>(); Solicitacao numSolic = new Solicitacao(); mapProcesso.put(numSolic.getNumSolicitacao(), numSolic); Att.: R. Barcelos.
GOSTEI 0
Barcelos.java

Barcelos.java

07/01/2011

Bom dia.   A variavel que foi adotada no subrelatório foi a numSolic, no entanto estou utilizando o subrelatório via objeto, ou seja, não utilizo select... no ireport e sim indico o caminho do objeto em questão.   não sei se é por isso que não consigo passar esse valor.   Agora o preciso fazer com que o subrelatório entenda a váriavel que estou passando para que o relatório mestre possa executar o subrelatório.   Desde já agradeço qualquer ajuda.   Att.: R.Barcelos.   
GOSTEI 0
Barcelos.java

Barcelos.java

07/01/2011

Segue o log do erro:   10/01/2011 10:51:25 com.sun.faces.lifecycle.Phase doPhase GRAVE: JSF1054: (Phase ID: INVOKE_APPLICATION 5, View ID: /rl_solicitacao.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@a81512] 10/01/2011 10:51:25 org.ajax4jsf.webapp.BaseXMLFilter doXmlFilter GRAVE: Exception in the filter chain javax.servlet.ServletException: #{relGeralForm.geraRelatorio}: java.lang.RuntimeException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : $F at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source) Caused by: javax.faces.FacesException: #{relGeralForm.geraRelatorio}: java.lang.RuntimeException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : $F at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118) at javax.faces.component.UICommand.broadcast(UICommand.java:387) at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324) at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299) at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256) at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) ... 18 more Caused by: javax.faces.el.EvaluationException: java.lang.RuntimeException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : $F at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) ... 28 more Caused by: java.lang.RuntimeException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : $F at br.org.isgh.compras.forms.RelGeralForm.geraRelProcessoVo(RelGeralForm.java:458) at br.org.isgh.compras.forms.RelGeralForm.geraRelatorio(RelGeralForm.java:157) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.el.parser.AstValue.invoke(AstValue.java:131) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) ... 29 more Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : $F at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:195) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:589) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:557) at net.sf.jasperreports.engine.fill.JRFillSubreport.getParameterValues(JRFillSubreport.java:494) at net.sf.jasperreports.engine.fill.JRFillSubreport.getParameterValues(JRFillSubreport.java:460) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateParameterValues(JRFillSubreport.java:359) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:339) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:263) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummaryNoLastFooterSamePage(JRVerticalFiller.java:1065) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummary(JRVerticalFiller.java:1030) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportEnd(JRVerticalFiller.java:300) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:134) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:938) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:860) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540) at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:387) at br.org.isgh.compras.util.RelatorioUtil.exibirRelatorio(RelatorioUtil.java:45) at br.org.isgh.compras.util.RelatorioUtil.exibirRelatorio(RelatorioUtil.java:69) at br.org.isgh.compras.forms.RelGeralForm.geraRelProcessoVo(RelGeralForm.java:454) ... 38 more Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '2328-11' with class 'java.lang.String' to class 'java.util.Map' at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:340) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(ScriptBytecodeAdapter.java:632) at relProcesso_1294667068955_907885.evaluate(calculator_relProcesso_1294667068955_907885:259) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:182) ... 60 more 10/01/2011 10:51:25 org.apache.catalina.core.StandardWrapperValve invoke GRAVE: Servlet.service() for servlet Faces Servlet threw exception org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '2328-11' with class 'java.lang.String' to class 'java.util.Map' at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:340) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(ScriptBytecodeAdapter.java:632) at relProcesso_1294667068955_907885.evaluate(calculator_relProcesso_1294667068955_907885:259) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:182) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:589) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:557) at net.sf.jasperreports.engine.fill.JRFillSubreport.getParameterValues(JRFillSubreport.java:494) at net.sf.jasperreports.engine.fill.JRFillSubreport.getParameterValues(JRFillSubreport.java:460) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateParameterValues(JRFillSubreport.java:359) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:339) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:263) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummaryNoLastFooterSamePage(JRVerticalFiller.java:1065) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummary(JRVerticalFiller.java:1030) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportEnd(JRVerticalFiller.java:300) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:134) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:938) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:860) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540) at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:387) at br.org.isgh.compras.util.RelatorioUtil.exibirRelatorio(RelatorioUtil.java:45) at br.org.isgh.compras.util.RelatorioUtil.exibirRelatorio(RelatorioUtil.java:69) at br.org.isgh.compras.forms.RelGeralForm.geraRelProcessoVo(RelGeralForm.java:454) at br.org.isgh.compras.forms.RelGeralForm.geraRelatorio(RelGeralForm.java:157) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.el.parser.AstValue.invoke(AstValue.java:131) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at javax.faces.component.UICommand.broadcast(UICommand.java:387) at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324) at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299) at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256) at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source)   Att.: R. Barcelos
GOSTEI 0
Robson Teixeira

Robson Teixeira

07/01/2011

OLá barcelos
 
  Com relação ao map segue o seguinte Map<String,Object>
 onde a chave do map deve ser 1 String com o nome da variavel criada no IReport.
  Segue 1 codigo de exemplo.

   Map<String,Object> args = new HashMap<String, Object>();
        args.put("SUBREPORT_DIR",getRequest().getServletContext().getRealPath(path));

   A variavel path e 1 String onde passo o diretorio dentro do projeto em que se encontra os .jasper do subReport
   o SUBREPORT_DIR e a variavel criada no IReport.

  Segue tambem 1 maneira de gerar relatorio passando o map criado no java para o jasper

    try {
             JRBeanCollectionDataSource source = new JRBeanCollectionDataSource(collection);
             if (args==null){
                 args = new HashMap<String, Object>();
             }
        //usado para internacionalizar o relatorio
             args.put(JRParameter.REPORT_LOCALE, new Locale(getIdioma()));
             return JasperFillManager.fillReport(filePath, args, source);
         } catch (Exception e) {
             e.printStackTrace();
         }
      Verifique também a variavel $F no relatorio e não esquecendo no relatorio mestre de passar 1 collection para o subRelatorio.
  Boa sorte e espero ter ajudado.

att
  Robson Passarella 
GOSTEI 0
Dyego Carmo

Dyego Carmo

07/01/2011

Tentou utilizar a biblioteca iText para unificar estes PDFs ? tem ateh exemplos na pagina como fazer isto !
GOSTEI 0
Barcelos.java

Barcelos.java

07/01/2011

agora estou executando e o meu relatório e só é exibido o relatório mestre o subreport não aparece. Desde já agradeço qualquer ajuda.   Att.: R. Barcelos
GOSTEI 0
Robson Teixeira

Robson Teixeira

07/01/2011

Olá Barcelos
  
    No Relatorio mestre você declara a area do subReport você passou tambem 1 collection para o subRelatorio???
    O relatorio mestre tem 1 collection e o subReport recebe outra.Tipo você tem 1 collection de contratos e para cada contrato ha 1 collection de gestores e essa collection de Gestores vai para o subReport.

  Verifique isso ok.

 att
  Robson Passarella Teixeira.
GOSTEI 0
Dyego Carmo

Dyego Carmo

07/01/2011

Resolvido ?

GOSTEI 0
Barcelos.java

Barcelos.java

07/01/2011

Ok, resolvido. Obrigado e desculpem pelo atrazo do feedback.
GOSTEI 0
POSTAR