Un error bastante habitual que se produce cuando trabajamos con la herramienta iReports, creo que a partir de la versión 3 (en mi caso concreto, la 3.7.0).
Cuando creamos un informe con esta herramienta, podemos encontrarnos con el siguiente error al compilar:
java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
La causa es tan simple como que el lenguaje seleccionado para el informe es, por defecto, Groovy en lugar de Java. Para solucionarlo seleccionamos nuestro report (el elemento raíz de la vista Report Inspector), y entre las propiedades editamos el valor de Language.
Para evitar tener que realizar este cambio con todos los nuevos informes que generemos, lo suyo es elegir Java como lenguaje predeterminado para nuestro iReports. Esto podemos hacerlo a través del menú Herramientas - Opciones, en la pestaña iReport - General (la que veremos al acceder al menú).
GRacias amigo, me ayudaste a que mi cerebro funcionara, un abrazo! desde Puebla, Mexico :D
ResponderEliminarPa eso estamos amigo!
ResponderEliminarGracias por comentar :D
Muy buena la aportación me ha ayudado bastante. Gracias.
ResponderEliminarMuchas Gracias, me ha servido de mucha ayuda.
ResponderEliminarUn saludo. Roberto
Muchisimas gracias, directo al punto, me salvaste...
ResponderEliminarAbsolutamente cierto y demás de concreto! +10 :)
ResponderEliminarUn crack. Muchas gracias
ResponderEliminarExcelente, me ha servido de mucho, gracias por la información xD, saludos Chanfu
ResponderEliminardisculpa . ya hize el cmbio
ResponderEliminarpero al momento de presionar el boton par ver el reporte
no me arroja nada, ni un error ni nada ...
alguna idea??
gacias!
Buenas, normalmente si el informe aparece en blanco es porque la consulta no ha devuelto resultados. ¿Puede ser tu caso?
ResponderEliminarno.... lo que pasa es que no abre la hoja donde deberia de aparecer el reporte
ResponderEliminarmira te dejo mi codigo:
try{
String rutaInforme = "C:\\report\\report4.jasper";
JOptionPane.showMessageDialog(null,"1");
JasperPrint informe = JasperFillManager.fillReport(rutaInforme,null,NuevaConexon);
JOptionPane.showMessageDialog(null,"2");
JasperViewer ventanavisor = new JasperViewer(informe,false);
JOptionPane.showMessageDialog(null,"3");
ventanavisor.setTitle("informe");
JOptionPane.showMessageDialog(null,"4");
ventanavisor.setVisible(true);
JOptionPane.showMessageDialog(null,"5");
}
catch (Exception e)
{
System.out.println(e);
}
Con los siguientes imports:
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import java.sql.*;
agrege
ResponderEliminaren el catch la linea de
System.out.println(e);
la cual me arroja el siguiente error:
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : report4
espero me puedas ayudar ! gracias!!!
Pues ese error lo que indica es que ha habido un error ejecutando la consulta SQL del informe. Cógete la consulta y ejecútala directamente en algún entorno SQL a ver si te da algún error concreto.
ResponderEliminarMuchas gracias, muy bien explicado y muy claro
ResponderEliminarExcelente amigo, muchas gracias me has ayudado a resolver este problema
ResponderEliminarholaa tengo una duda, espero me puedan ayudar
ResponderEliminaren el editor de expresiones pongo la siguiente linea
($F{entregado}.equalsIgnoreCase("true")?"si":"no")
quiero que cuando sea true , se muestre en el reporte un "si", de lo contrario un no , pero me marca un error , no se que pueda ser
me sale todo eso:
Error filling print... Error evaluating expression : Source text : ($F{entregado}.equalsIgnoreCase("true")?"si":"no")
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : ($F{entregado}.equalsIgnoreCase("true")?"si":"no") 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.JRFillTextField.evaluateText(JRFillTextField.java:383) at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:368) 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:2036) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845) 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:878) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Caused by: groovy.lang.MissingMethodException: No signature of method: java.lang.Boolean.equalsIgnoreCase() is applicable for argument types: (java.lang.String) values: [true] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:54) at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) at Entrega_1317137264781_208428.evaluate(calculator_Entrega_1317137264781_208428:235) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:182) ... 19 more
Print not filled. Try to use an EmptyDataSource...
Por favor, para este tipo de consultas usa el formulario de contacto, así puedo responderte directamente.
ResponderEliminarGracias!
Conciso, claro y preciso, un fenómeno!!!
ResponderEliminaru save my life thx bro!!
ResponderEliminarRicardo:
ResponderEliminarde que gran a puro me sacaste gracias hermano
SUPERO AYUDA HERMANO. TE LO AGRADESCO NO SABES CUANTO.. HABIA PASAADO ROMPIENDOME LA CABEZA DURANTE 1 MES BUSCANDOLE LA SOLUCION.. CAMBIANDO LAS LIBRERIAS.. JEJEJE GRACIASS BRO!!!
ResponderEliminarMuchas gracias, solucionó mi problema. :)
ResponderEliminarBuena
ResponderEliminarMuchas gracias, has explicado muy bien, la causa y la solución de la excepción
ResponderEliminarmuchas graciasssssssssss
ResponderEliminarDios.. un dia entero perdido por semejante estupidez.. Muchas Gracias.. Resolvio mi problema..
ResponderEliminarGracias Hermano me salvaste
ResponderEliminarExcelente, me salvaste de romperme la cabeza un buen rato
ResponderEliminarGran aportación en verdad
ResponderEliminarHola a mi me sale language= SQL pero no groovy en el archivo del reporte, alguna otra causa por la que suceda este error? como se llama la linea especifica? ya hize los cambies en el ireport a lenguaje java cree nuevos reportes y aun me sale este error, un saludo!
ResponderEliminarYa lo he encontrado, muchas gracias por su ayuda
ResponderEliminarExcelente lleva buen rato buscando la libreria grooby
ResponderEliminarGracias amigo, despues de tanto tiempo sigues vigente. Gracias por tu ayuda...
ResponderEliminar¡Muchas gracias! Me ahorraste romperme la cabeza para encontrar el problema.
ResponderEliminarGracias ya no sabia que hacer con este error!
ResponderEliminargroso! verdadera aspirina!
ResponderEliminarGraciass!!!!! no tenia idea porque podia ser ese errorr!!!!
ResponderEliminarGracias hermano!!! un abrazo desde Argentina.!!
ResponderEliminargracias. resolvio mi priblema. saludos desde Costa Rica
ResponderEliminarlo cambio a java'??
ResponderEliminarjeje,, que problemita este. Muchas gracias :-D
ResponderEliminarGracias tambien me salvaste de un hoyo
ResponderEliminarMuchas gracias, excelente aporte... funciono perfecto
ResponderEliminarGracias por la aportación!!
ResponderEliminarMuchisimas gracias
ResponderEliminarmuchas grax
ResponderEliminarQue buen Dato!!!! me fue de gran ayuda. Gracias desde Venezuela
ResponderEliminarMuchas gracias!! :-)
ResponderEliminarMuchas gracias. Saludos desde Venezuela.
ResponderEliminarMil Gracias !!
ResponderEliminar