1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
// Source File Name: JasperCallFactory.java
package jasper.factory;
import java.io.File;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
public class JasperCallFactory
{
public JasperCallFactory(Connection jdbcConnection1, String format)
{
this.format = null;
parameters = null;
jdbcConnection = jdbcConnection1;
this.format = format;
}
public void showInBrowser(File fichier, HttpServletResponse out)
{
try
{
ServletOutputStream out2 = out.getOutputStream();
net.sf.jasperreports.engine.design.JasperDesign jasperDesign = JRXmlLoader.load(fichier);
net.sf.jasperreports.engine.JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
net.sf.jasperreports.engine.JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, jdbcConnection);
if(format == null)
{
out.setContentType("application/pdf");
out.setHeader("Content-disposition", "filename=etat.pdf");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
exporter.exportReport();
} else
if(format.equalsIgnoreCase(PDF_FORMAT))
{
out.setContentType("application/pdf");
out.setHeader("Content-disposition", "filename=etat.pdf");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
exporter.exportReport();
} else
if(format.equalsIgnoreCase(HTML_FORMAT))
{
out.setContentType("text/html");
out.setHeader("Content-disposition", "filename=etats.html");
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
exporter.exportReport();
} else
if(format.equalsIgnoreCase(RTF_FORMAT))
{
out.setContentType("application/ms-word");
out.setHeader("Content-disposition", "filename=etat.rtf");
JRRtfExporter exporter = new JRRtfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
exporter.exportReport();
} else
if(format.equalsIgnoreCase(EXCEL_FORMAT))
{
out.setContentType("application/ms-excel");
out.setHeader("Content-disposition", "filename=etat.xls");
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out2);
exporter.exportReport();
}
out2.flush();
out2.close();
}
catch(Exception ex)
{
String connectMsg = (new StringBuilder("Ne peut creer le stream du report")).append(ex.getMessage()).append(" ").append(ex.getLocalizedMessage()).toString();
System.out.println(connectMsg);
}
}
public Connection getJdbcConnection()
{
return jdbcConnection;
}
public void setJdbcConnection(Connection jdbcConnection)
{
this.jdbcConnection = jdbcConnection;
}
public String getFormat()
{
return format;
}
public void setFormat(String format)
{
this.format = format;
}
public Map getParameters()
{
return parameters;
}
public void ajouterParametre(String nom, Object valeur)
{
if(parameters == null)
parameters = new HashMap();
parameters.put(nom, valeur);
}
public void setParameters(Map parameters)
{
this.parameters = parameters;
}
private Connection jdbcConnection;
private String format;
private Map parameters;
public static String PDF_FORMAT = "pdf";
public static String HTML_FORMAT = "html";
public static String RTF_FORMAT = "html";
public static String EXCEL_FORMAT = "html";
} |
Partager