17 de septiembre de 2009

Nuevo Servicio de Java para Reporte

Aqui mejore un poco el servicio de java para reporte
espero q les sirva!!

import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;

import java.util.*;
import java.io.*;
import java.net.URL;
import org.hibernate.Session;
import com.*;
import com.wavemaker.runtime.RuntimeAccess;

public class ReportGenerator {

public void getReport(String urlReporte,int param1,String param2) throws Exception {
try {
//para traer la conexion del servicio de base de datos
MiServicioBD service = (MiServicioBD) RuntimeAccess.getInstance().getService(MiServicioBD.class);
service.begin();
Session session = service.getDataServiceManager().getSession();

Map parameters = new HashMap();
parameters.put("param1",new Integer(param1));
parameters.put("param2",param2);

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

//copiando el reporte a la carpeta pdf que esta adentro de webapproot
String camino[]=(getClass().getResource("/").toString()).split("nombre_de_tu_proyecto");
System.out.println("camino"+camino[0]);
JasperExportManager.exportReportToPdfFile(jasperPrint,camino[0].replaceAll("file:/","")+"nombre_de_tu_proyecto/webapproot/pdf/"+urlReporte+".pdf");

} catch (Exception e) {
e.printStackTrace();
}

}//fin metodo getReport

}//fin clase


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
luego desde la vista solo tienes que abrir despues que se ejecute el serviceVariable

serviceVariable3Success: function(inSender, inData) {
window.open("pdf/elecciones1.pdf");
},

Mis cosas

Powered By Blogger