/*
*
* Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute
- Graduate School and Research in Engineering.
* See the file license.txt for copyright permission.
*
*/
package reports;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.j2ee.servlets.ImageServlet;
public class GeraRelatorioEmHTML extends HttpServlet
{
private final static long serialVersionUID = 1L;
@SuppressWarnings("unchecked")
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String nomeDoRelatorio = (String)request.getAttribute("nomeDoRelatorio");
System.out.println(">>>>>>>>>>>>>>>Nome do relatorio="+nomeDoRelatorio);
List lista = (List)request.getAttribute("lista");
HashMap<String, String> parametros = (HashMap<String, String>)request.getAttribute("parametros");
ServletContext context = this.getServletContext();
String nomeDoArquivoCompilado = context.getRealPath(nomeDoRelatorio);
System.out.println(">>>>>>>>>>>>>>>>>>>> nomeDoArquivoCompilado="+nomeDoArquivoCompilado);
File arquivo = new File(nomeDoArquivoCompilado);
PrintWriter printWriter = response.getWriter();
try
{ JasperReport relatorioCompilado = (JasperReport) JRLoader.loadObject(arquivo);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);
JasperPrint impressao = JasperFillManager.fillReport(relatorioCompilado, parametros, ds);
JRHtmlExporter htmlExporter = new JRHtmlExporter();
response.setContentType("text/html");
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, impressao);
htmlExporter.setParameter(JRExporterParameter.JASPER_PRINT, impressao);
htmlExporter.setParameter(JRExporterParameter.OUTPUT_WRITER, printWriter);
htmlExporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/gesplan/image?image=");
htmlExporter.exportReport();
}
catch(JRException e)
{ e.printStackTrace(printWriter);
}
}
}