This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package lib.reports; | |
import java.io.ByteArrayInputStream; | |
import java.io.ByteArrayOutputStream; | |
import java.io.InputStream; | |
import java.io.OutputStream; | |
import java.util.Map; | |
import net.sf.jasperreports.engine.JasperFillManager; | |
import net.sf.jasperreports.engine.JasperPrint; | |
import net.sf.jasperreports.engine.export.JExcelApiExporter; | |
import net.sf.jasperreports.engine.JRExporter; | |
import net.sf.jasperreports.engine.JRExporterParameter; | |
import net.sf.jasperreports.engine.JasperCompileManager; | |
public class BaseJasperReport { | |
//here should be jrxml and jasper files, | |
//you can generate them with iReports(I'm using netbeans plugin) | |
// http://jasperforge.org/projects/ireport | |
static String REPORT_DEFINITION_PATH = "./app/reports/"; | |
public static InputStream generateReport(String reportDefFile, Map reportParams) { | |
OutputStream os = new ByteArrayOutputStream(); | |
try { | |
String compiledFile = REPORT_DEFINITION_PATH + reportDefFile + ".jasper"; | |
JasperCompileManager.compileReportToFile(REPORT_DEFINITION_PATH + reportDefFile + ".jrxml", compiledFile); | |
JasperPrint jrprint = JasperFillManager.fillReport(compiledFile, reportParams, play.db.DB.getConnection()); | |
JRExporter exporter = new JExcelApiExporter(); | |
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, os); | |
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jrprint); | |
exporter.exportReport(); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
} | |
return new ByteArrayInputStream(((ByteArrayOutputStream) os).toByteArray()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require: | |
- play | |
- net.sf.jasperreports -> jasperreports 4.0.1: | |
transitive: false | |
- commons-digester -> commons-digester 1.7: | |
transitive: false | |
- com.lowagie -> itext 2.1.7: | |
transitive: false | |
- net.sourceforge.jexcelapi -> jxl 2.6.10: | |
transitive: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package controllers; | |
import play.*; | |
import play.mvc.*; | |
import java.util.Map; | |
import java.util.HashMap; | |
import models.*; | |
import controllers.*; | |
public class SomeController extends extends Base { | |
public static void download_report() { | |
Map reportParams = new HashMap(); | |
//jrxml and jasper files should be in app/reports | |
renderBinary(lib.reports.BaseJasperReport.generateReport("SomeReport", reportParams), "some_report.xls"); | |
} | |
} |