GWT + JasperReport

250 views
Skip to first unread message

Vagner Araujo

unread,
Feb 28, 2009, 1:26:07 PM2/28/09
to Google Web Toolkit

Hello friends,

the servlet shows how to generate reports using jasperReport.


//Servlet GetReport


package com.javaneses.report.server.report;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

/**
* @author Vagner Araujo
* */

public class GetReport extends HttpServlet{


private static final long serialVersionUID = -5295343701909694274L;

protected void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {


final String reportFileName = request.getParameter
("reportFileName");
final String reportName = request.getParameter("reportName")
+".jasper";


response.setContentType("application/pdf");
response.setHeader("Content-disposition", "attachment; filename=\""
+ reportFileName + "\"");

Map<Object, Object> map = new HashMap<Object, Object>();

//add report logo
//logo path
final String logoPath = "com/javaneses/report/server/report/
logo.jpg";
URL url = ClassLoader.getSystemResource(logoPath);
//report parameter
map.put("logo", url);


try {
//file.jasper path
final String reportPath = "com/javaneses/report/server/
report/"+reportName;
url = ClassLoader.getSystemResource(reportPath);
File file = new File(url.toURI());
InputStream inputStream = new FileInputStream(file);
JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream,
map, /*Your dataSource*/));
byte[] report = JasperExportManager.exportReportToPdf(jasperPrint);

response.setContentLength(report.length);
ServletOutputStream out = response.getOutputStream();
out.write(report);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}//end doPost
}//end class

Parameters

reportFileName => name to be suggested when the report is saved.
reportName => name of the jasper file compiled.


Vagner Araujo
vag...@jdukes.com
Reply all
Reply to author
Forward
0 new messages