Posts
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.htmlAtt Davi
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
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
Uma solução seria vc usar Ireport/japer. Muito facil de usar. Se queser posso fazer um tutorial rapido para vc.
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.
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;
}
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.
07/01/2011
Robson Teixeira
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
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.
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.
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
10/01/2011
Robson Teixeira
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
Tentou utilizar a biblioteca iText para unificar estes PDFs ? tem ateh exemplos na pagina como fazer isto !
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
14/01/2011
Robson Teixeira
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.