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");
},
3 comentarios:
¡Hola!
¡Gracias por tanto ayuda! Leí mucho, pero como tengo poca experiencia en wavemaker y nada en java y jasper, no entiendo como usar esta ayuda. Puede ayudarme? Lo que hay escrito aquí es lo que hay que añadir a algo o es para copiar en algún lado?
¡Gracias!
Doris Rush-Lopez
New Jersey, USA
drl@gotwick.com
una pregunta
estoy probando este codigo java
funcion excelente
pero con el comando window.open
el abre el archivo antiguo
que puedo hacer para espere hasta que se genere el nuevo archivo y luego ejecute abrir el mismo
puedes agregar la fecha en el nombre del archivo y asi abrir las mas actual.
Publicar un comentario