Reportes con Ireport ( java.io.FileNotFoundException)
Hola a todos, tengo un problema con el reporte, he creado mi clase "reportes" el cual no muestra ningun error la llamada la realizo con un boton y he revizado y todo esta bien; el archivo con extencion jasper lo tengo en otro paquete q se llama Vistas quisa el problema por ahi, cuando ejecuto el programa y pulso el boton q me realiza el llamado del reporte, no me muestra nada y en netbenas me muestra un mensaje :"Error cargando el reporte maestro: java.io.FileNotFoundException: Vistas\Personal.jasper" "Java Result: 3", espero q alguien me ayude pero yo no encuentro un error posible de antemano muchas gracias.
package mediterranea_planilla;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.*;
import net.sf.jasperreports.view.save.JRPdfSaveContributor.*;
import net.sf.jasperreports.view.JRViewer.*;
import net.sf.jasperreports.view.save.JRMultipleSheetsXlsSaveContributor.*;
/**
*
* @author VERDE TRUJILLO Luis
*/
public class Reportes {
public String bd = "planilla";
public String login = "root";
public String password = "lu199803";
public String url = "jdbc:mysql://localhost/"+bd;
Connection conn=null;
public Reportes(){
try{
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection(url, login, password);
JOptionPane.showMessageDialog(null,"Conexiónestablecida");
}catch (Exception ex){ex.printStackTrace();}
}
public void ejecutarReporte(){
try{
String archivo = "Vistas/Personal.jasper";
System.out.println("Cargando desde: " + archivo);
if(archivo == null) {
System.out.println("No se encuentra el archivo.");
System.exit(2);
}
JasperReport masterReport= null;
try {
masterReport= (JasperReport) JRLoader.loadObject(archivo);
} catch (JRException e) {
System.out.println("Error cargando el reporte maestro: " + e.getMessage());
System.exit(3);
}
JasperPrint jasperPrint= JasperFillManager.fillReport(masterReport,null,conn);
//Se lanza el Viewerde Jasper, no termina aplicación al salir
JasperViewer jviewer= new JasperViewer(jasperPrint,false);
jviewer.setTitle("Lista de Personal");
jviewer.setVisible(true);
}catch (Exception j){System.out.println("Mensaje de Error:"+j.getMessage()); }
}
public void cerrar(){
try {
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
//aqui finaliza la clase
}
- Inicie sesión o regístrese para enviar comentarios
Unas dudas
¿Porque casi nadie usa las etiquetas de code?
¿No les gustan?
¿Es que acaso no son mas agradables a la vista?
¿No es mas legible el código de esa manera?
Para los que tienen mas experiencia, ¿No les dan mas ganas de ayudar a alguien si este es mas aseado y preocupado por mostrar su problema?
¿Nos faltara más educación o modales? ¿Qué sera, qué sera, los que nos faltara?
Hash Map & JasperFillManager.fillReport(masterReport,null,conn)
Creo te falto algo como esto:
Tu metodo no recibe parametros por el usuario?
Saludos.
alguien me puede decir mi error porfavor
package FORMULARIOS;
import java.net.URL;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
/**
* @web
* @author Mouse
*/
public class iReportClass {
//se estable una conexion con la base de datos
private conexion1 con = new conexion1();
/* reporte sencillo con conexion a base de datos MySQL,
* el reporte no cuenta con parametros */
public void reporte(){
JasperReport reporte;
JasperPrint reporte_view;
try{
//direccion del archivo JASPER
URL in = this.getClass().getResource("ll.jrxml");
reporte = (JasperReport) JRLoader.loadObject(in); //AQUI ME TIRA EL ERROR
reporte_view= JasperFillManager.fillReport(reporte,new HashMap(),con.getConnection());
JasperViewer.viewReport( reporte_view );
//terminamos la conexion a la base de datos
con.desconectar();
}catch (JRException E){
E.printStackTrace();
}
}
}
ESTOS SON LOS MENSAGES QUE ME MANDA NETBEANS
Conexión a base de datos bdandsis. listo
file:/HDD1/ANDSISosx/src/FORMULARIOS/ll.jrxml
net.sf.jasperreports.engine.JRException: Error loading object from URL : file:/HDD1/ANDSISosx/src/FORMULARIOS/ll.jrxml
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:147)
at FORMULARIOS.iReportClass.reporte(iReportClass.java:33)
at FORMULARIOS.Main.main(Main.java:9)
Caused by: java.io.StreamCorruptedException: invalid stream header: 3C3F786D
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:782)
at java.io.ObjectInputStream.(ObjectInputStream.java:279)
at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.(ContextClassLoaderObjectInputStream.java:53)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:142)
... 2 more
JasperReport
De antemano gracias por sus aportes
Su conexion a factura está activada
Su conexion a factura está activada
cargando desde:Reporte.jasper
Error cargando el reporte maestro:java.io.FileNotFoundException: Reporte.jasper//Este es el mensaje de error
Java Result: 3
Gracias otra vez por su
Gracias otra vez por su tiempo
cuando trato de escribir esta linea de código , el loadObject aparece anulado
masterReport=(JasperReport)JRLoader.loadObject(archivo);
y utilizando esta linea tampoco funciona
masterReport=(JasperReport)JRLoader.loadObjectFromFile(archivo);
por favor que debo hacer, aclarando que el el preview funciona correctamente
Gracias
codigo jasper iReport
Alguien que por favor me ayude con mi proyecto respecto a las línes de código siguientes:
Cuando trato de escribir esta línea de código , el loadObject ,aparece anulado:
masterReport=(JasperReport)JRLoader.loadObject(archivo);
y utilizando esta linea tampoco funciona
masterReport=(JasperReport)JRLoader.loadObjectFromFile(archivo);
Y el error que me muestra es:
Error cargando el reporte maestro:java.io.FileNotFoundException: Reporte.jasper
por favor que debo hacer, aclarando que el preview funciona correctamente
Gracias de nuevo por su tiempo
Creo que ustedes son los únicos que puden darme la mano
Quisiera saber donde está el
Quisiera saber donde está el error:
public class IniciarReporte
{
Connection miconexion=null;
public IniciarReporte()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
miconexion=DriverManager.getConnection("jdbc:mysql://localhost:3308/factura","root" ,"gustavo");
JOptionPane.showMessageDialog(null,"!! Conexión establecida !");
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
//SE INICIA LA CLASE QUE EJECUTARÁ EL REPORTE Y SE CARGA EL ARCHIVO
public void ejecutarReporte(String idfactura)
{
try
{
String archivo="Reporte.jasper";
System.out.println("cargando desde:"+ archivo);
if(archivo == null)
{
System.out.println("No se encuentra el archivo.");
System.exit(2);
}
JasperReport masterReport=null;
try
{
masterReport=(JasperReport)JRLoader.loadObject(archivo);
}
catch(JRException e)
{
System.out.println("Error cargando el reporte maestro:" + e.getMessage());
System.exit(3);
}
//SE PASAN LOS PARAMETROS INTRODUCIDOS POR EL USUARIO
//BASTA CON PONER MAS PARAMETRO.PUT
Map parametro=new HashMap();
parametro.put("IDFACTURA",idfactura);
//parametro.put("PRODUCTO",Producto);Como agregar un nuevo parametro
//REPORTE DISEÑADO Y COMPILADO POR IREPORT
JasperPrint jasperPrint=JasperFillManager.fillReport(masterReport, parametro, miconexion);
//SE LANZA EL VIEWER DE JASPER,NO TERMINA APLICACION AL SALIR
JasperViewer jviewer=new JasperViewer(jasperPrint,false);
jviewer.setTitle("Lista de productos");
jviewer.setVisible(true);
}
catch(Exception j)
{
System.out.println("Mensaje de error:"+ j.getMessage());
}
}
//POR ULTIMO SE CIERRA LA CONEXION
public void cerrar()
{
try
{
miconexion.close();
}
catch(SQLException ex)
{
ex.printStackTrace();
}
}
}