31 de enero de 2009

Jasper Reports en WaveMaker

Algunos tips para realizar reportes en WaveMaker sobre Windows.
Para poder integrar JasperReports a tu aplicacion debes añadir en tu proyecto algunas librerias de jasper, las mas basicas son:
  • commons-digester-1.7.jar
  • itext-1.3.1.jar
  • jasperreports-3.0.0.jar
  • jasperreports-extensions-1.3.1.jar
En mi caso estas librerias las saque del IReport pero las versiones pueden ser diferentes.

Esto se debe hacer en la siguiente direccion: WaveMaker\Projects\EnNombreDeTuProyecto\lib

Luego podras crear tu java service para poder interactuar tu jrxml diseñado en mi caso con IReport.

Aqui mi java service para poder ver las conexiones y mi reporte exportado en PDF.


public class ReportGenerator {

public void getReport(String urlReporte,int nro) throws Exception {

Connection conn = null;
String url = "jdbc:postgresql://localhost:5432/";
String dbName = "tester";
String driver = "org.postgresql.Driver";
String userName = "postgres";
String password = "123456";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);

Map parameters = new HashMap();
String par=String.valueOf(nro);
parameters.put("cod_pedido",new String(par));

URL fileUrl = this.getClass().getResource(urlReporte+".jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(fileUrl.openStream());
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,parameters, conn);

JasperExportManager.exportReportToPdfFile(jasperPrint, "c:\\Documents and Settings\\usuario\\Mis documentos\\WaveMaker\\Projects\\ElNombreDeTuProyecto\\webapproot\\images\\"+urlReporte+".pdf");

} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch(Exception e) {
}
}
}
Lugo obvimente te creas un serviceVariable enlazando con el java service anterior

Aqui lo importante, direcciono el reporte en PDF en una carpeta del proyecto

JasperExportManager.exportReportToPdfFile(jasperPrint, "c:\\Documents and Settings\\usuario\\Mis documentos\\WaveMaker\\Projects\\ElNombreDeTuProyecto\\webapproot\\images\\"+urlReporte+".pdf");


Y luego puedo abrirlo con un evento por ejemplo pulsando un boton.

imprimirEntregaSuccess: function(inSender, inData) {
window.open("images/mi_reporte.pdf");
},


Eso es todo espero ver muchos proyectos con jasper.

Mis cosas

Powered By Blogger