/* * To change this template, choose Tools | Templates * and open the template in the editor. */ import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; 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 net.sf.jasperreports.view.JasperViewer; import org.apache.struts2.ServletActionContext; /** * * @author ICT */ public class ReportHelper { public static Connection connectDB(String databaseName, String userName, String password) { Connection jdbcConnection = null; try { Class.forName("com.mysql.jdbc.Driver"); jdbcConnection = DriverManager.getConnection(databaseName, userName, password); } catch (Exception ex) { String connectMsg = "Could not connect to the database: " + ex.getMessage() + " " + ex.getLocalizedMessage(); System.out.println(connectMsg); } return jdbcConnection; } public static void runReport(String databaseName, String userName, String password, String reportFile) { File f=new File(reportFile); System.out.println("Run Report file exists : "+f.exists()); try { JasperDesign jasperDesign = JRXmlLoader.load(reportFile); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); Connection jdbcConnection = connectDB(databaseName, userName, password); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jdbcConnection); JasperViewer.viewReport(jasperPrint, false); } catch (Exception ex) { String connectMsg = "Could not create the report " + ex.getMessage() + " " + ex.getLocalizedMessage(); System.out.println(connectMsg); } } public static void runReport(String databaseName, String userName, String password, String reportFile, Map args) { try { JasperDesign jasperDesign = JRXmlLoader.load(reportFile); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); Connection jdbcConnection = connectDB(databaseName, userName, password); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, args, jdbcConnection); JasperViewer.viewReport(jasperPrint, false); } catch (Exception ex) { String connectMsg = "Could not create the report " + ex.getMessage() + " " + ex.getLocalizedMessage(); System.out.println(connectMsg); } } public static void generateReport(Connection connection, Map parameters, String file) { HttpServletResponse response = ServletActionContext.getResponse(); ServletOutputStream servletOutputStream = null; try { servletOutputStream = response.getOutputStream(); } catch (Exception ex) { } String reportFile = ServletActionContext.getServletContext().getRealPath(file); System.out.println("reportFile : " + reportFile); // String reportFile = "/C:/Program Files (x86)/Parallels/Plesk/Additional/Tomcat/work/PSA/ictsoft.in/Arogya/WEB-INF/classes" + file; JasperPrint jasperPrint; File f = new File(reportFile); System.out.println("File exists : " + f.exists()); try { //File reportFile = new File("/home/ict/NetBeansProjects/Development2011/Jan/Arogya_1/web/reports/memberreport.jasper"); jasperPrint = JasperFillManager.fillReport(reportFile, parameters, connection); JasperExportManager.exportReportToPdfFile(jasperPrint, "destfile.pdf"); response.setContentType("application/pdf"); JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream); servletOutputStream.flush(); //servletOutputStream.close(); } catch (Exception e) { e.printStackTrace(); } finally { //close the connection. } } }