Hola a todo el mundo que está
metido en este mundo de programación, este es mi primer post y espero que pueda
satisfacer sus necesidades.
Bueno voy a pasar a mostrar un poco de código para que puedan observar lo fácil que es mostrar una vista preliminar de nuestros reportes desde java...
Lo primero es nuestra conexión a la base de datos, para este ejemplo usare una base de datos en access... en fin, no importa el motor de base de datos, solo agregar el jdbc y cambiar la cadena de conexión.
La clase tiene como nombre Modulo()
Bueno voy a pasar a mostrar un poco de código para que puedan observar lo fácil que es mostrar una vista preliminar de nuestros reportes desde java...
Lo primero es nuestra conexión a la base de datos, para este ejemplo usare una base de datos en access... en fin, no importa el motor de base de datos, solo agregar el jdbc y cambiar la cadena de conexión.
La clase tiene como nombre Modulo()
public class Modulo { private final static Logger LOGGER = Logger.getLogger(Modulo.class.getName()); //Es muy importante el uso del LOGGER para poder mostrar mensajes y no el famoso System.out.print(); String Driver="sun.jdbc.odbc.JdbcOdbcDriver"; String URL="jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=C:/DataBase.mdb"; //Aquí deberían cambiar según el motor de base de datos que usan. String User="Administrador"; String Password="pass"; public Connection getConexionBD(){ Connection cn = null; try { Class.forName(Driver).newInstance(); cn=DriverManager.getConnection(URL,User,Password); LOGGER.info("Se conecto!"); } catch (Exception e) { LOGGER.warning(e.getMessage()); } return cn; //Retorna la conexion } }
En esta clase tenemos un metodo llamado MostrarReporteViewer(), recibe como
parametros la ruta donde esta nuestro reporte .jasper y los parametros del reporte.
public class Reportes { Connection cn=null; public void MostrarReporteViewer(String Ruta,Map parametros){ try { BasicConfigurator.configure(); Modulo obj = new Modulo(); cn=obj.getConexionBD(); JasperReport reporte = (JasperReport) JRLoader.loadObject(Ruta); //////////////////////////////////// parametros.put(JRParameter.REPORT_LOCALE, Locale.US); //Esta línea es muy importante si el formato de los números de tu país es “999,999.00”, //el IReport te mostrara por default “999.999,00”, con esta simple línea podrás solucionar ese problema. //////////////////////////////////// JasperPrint jasperPrint = JasperFillManager.fillReport(reporte,parametros, cn); JasperViewer jviewer=new JasperViewer(jasperPrint,false); jviewer.setTitle(""); jviewer.setVisible(true); cn.close(); } catch (JRException ex) { JOptionPane.showMessageDialog(null,"Problemas al Diseñar el reporte"); } catch (SQLException ex) { JOptionPane.showMessageDialog(null,"Problemas en la BD"); } } }
En esta clase arrancamos el reporte.
public class Ver { static Reportes reportes = new Reportes(); public static void main(String[] args) { String Ruta="C:/ReportePrueba.jasper";//Ruta de reporte .Jasper Map parametros = new HashMap();//Parametros mapeados parametros.put("Codigo","001");//Parametro llamado "Codigo", se envia 001 reportes.MostrarReporteViewer(Ruta, parametros); } }