Bom dia senhores.
Estou tendo um problema com o iReport, preciso passar um parametro para jasper criar uma SQL com filtro. No iReport criei minha sql colocando o parametro $P{codigo} para usar na clausula WHERE da minha sql. O iReport não compila meu relatorio porque diz que nao encontrou o parametro. Como resolvo isso?
Já no iReport, você comentou que colocou o tal parâmetro na instrução SQL, isso não garante que ele exista de fato.
Por isso vá na aba, se não me lembro, “iReport Inspector” e crie o parâmetro, não esqueça de colocar o tipo dele também.
Espero ter ajudado.
[]'s
G
gqferreira
Obrigado. O meu problema realmente era como mostrar pro iReport que eu queria usar aquele parametro, pois ja tinha colocado-o na minha sql. Nem tinha visto que no “report inspector” tinha os parametros. Coloquei e em fim consegui compilar o relatorio.
Agora, para o código no Java, JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arquivoJasper); Isso nao funcionou comigo, o stacktrace diz que nao encontrou a classe LogFactory:
Tentei com essas, apesar de que as tres primeiras parecem ser desnecessarias, pois com ou sem elas o problema nao muda.
Meu teste:
HashMapm=newHashMap();// hashmap para armazenar os parametrosm.put("codigo","1");JasperPrintjasperPrint=JasperFillManager.fillReport("/home/gustavo/report1.jasper",m,BD.connection);JasperViewerviewer=newJasperViewer(jasperPrint,false);viewer.setZoomRatio((float)0.7892);viewer.setExtendedState(JasperViewer.MAXIMIZED_BOTH);//Coloca em maximizadoviewer.setTitle("Teste");//Coloca um título no relatórioviewer.setVisible(true);
Mesmo carregando o relatorio pelo JasperReport e colocando-o no JasperPrint nao funcionou…
Obrigado a todos.
J
jzaires
Não sei qual a IDE que você usa, eu utilizo o Netbeans. Por ele quando eu instalo o plugin do iReport,
a biblioteca JasperReports já é referenciada na IDE, precisando que eu somente adicione as bibliotecas
ao projeto.
Por isso eu não me preocupo se falta algum jar.
No caso de você utiliza outras IDE’s, você deve colocar os tais jars, no caso essas aí:
[list]commons-beanutils [/list]
[list]commons-collections[/list]
[list]commons-digester[/list]
[list]commons-javaflow[/list]
[list]commons-logging-api[/list] (Acredito que seja essa daqui!)
[list]itext[/list]
[list]jasperreports[/list]
[list]groovy-all-X.X.X[/list]
Esse erro é parecido com um outro post que ajudei, no caso a que faltava adicionar era a última.
Espero ter ajudado.
[]'s
G
gqferreira
Uso Eclipse.
Coloquei todas as bibliotecas que você citou, depois de concluir que funciona, fui tirando até ver quais eram essenciais. Ficou as seguintes:
Além dessas foi necessario usar a asm-3.2
Depois de tudo percebi que na ‘libs’ do iReport tem tudo E eu procurando na internet…
Agora o problema volta no tema do topico. Meu relatorio possui subrelatorios, esses sub’s não reconhecem o parametro.
G
gqferreira
Nas propriedades do subrelatorio tem a opcao parameters, la passei o parametro do relatorio pai para o subrelatorio. Problema resolvido. Obrigado jzaires.
J
jzaires
De nada. O importante no iReport é você ficar esperto nessa aba “Report Inspector”, nela consta toda a estrutura do relatório.
[]'s
G
gqferreira
:lol:
Surgiu outro problema, entao para nao criar outro topico, decidi reviver este…
Um relatorio, esse relatorio tem um ‘subreport’, o pai chama o filho e mostra, tudo certo, um formulario dentro do outro. Agora coloco os dois dentro de um pacote e compilo com minha aplicacao. La de dentro o pai tenta chamar o filho somente informando o nome dele pois estao um do lado do outro. No combo ‘expression class’ escolho java.net.URL. Isso nao funciona, da erro :
Error filling print... Error evaluating expression : Source text : "Cliente_telefone.jasper"
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : "Cliente_telefone.jasper" 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.JRFillElement.evaluateExpression(JRFillElement.java:929) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateReport(JRFillSubreport.java:272) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:327) 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.fillColumnBand(JRVerticalFiller.java:2026) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:757) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:269) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:127) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:942) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247) at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:877) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Cliente_telefone.jasper' with class 'java.lang.String' to class 'java.net.URL' at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:340) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(ScriptBytecodeAdapter.java:632) at Cliente_juridico_1282262440633_70070.evaluate(calculator_Cliente_juridico_1282262440633_70070:261) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:182) ... 20 more
Também ja tentei informar o caminho a partir do ‘src’ do projeto.