Pessoal, tenho uma classe Imprimir.java para gerar um relatório PDF feito no jasperreports(ireport), porém quero utilizá-lo como padrão para todos os relatórios gerados. No caso de chamar o relatório já está funcionando bastando jogar como parametro(report_file=nomedorelatorio), porém, preciso passar os parametros tb, ou seja, o mapa (map), como faço isto…alguém tem alguma idéia ?
Map parameters = new HashMap();
parameters.put("COD_EMPRESA", "60");
parameters.put("GESTAO", "2005");
parameters.put("DATA", "20/01/2005");
Estes parametros acima, devem ser dinâmicos, pois se alterará para cada relatório diferente !
Obrigado,
Farnetani
package aplicacao.relatorios;
import java.io.File;
import java.sql.Connection;
import java.util.HashMap;
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.JasperRunManager;
import regNegocio.RegNegocio;
public class Imprimir extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException {
try {
String rootDir = getServletContext().getRealPath("/ireports");
Map parameters = new HashMap();
parameters.put("COD_EMPRESA", "60");
parameters.put("GESTAO", "2005");
parameters.put("DATA", "20/01/2005");
// needed for subreports:
parameters.put("rootDir", rootDir);
System.out.println("diretorio: " + rootDir);
String reportFilename = rootDir + File.separator
+ request.getParameter("report_file");
System.out.println(reportFilename);
File reportFile = new File(reportFilename);
if (!reportFile.exists()) {
return;
}
RegNegocio rn = new RegNegocio();
Connection conn = rn.armaConexao();
if (conn == null) {
return;
}
byte[] buffer = null;
buffer = JasperRunManager.runReportToPdf(reportFile.getPath(),
parameters, conn);
if ((buffer != null) && (buffer.length > 0)) {
response.setContentType("application/pdf");
response.setContentLength(buffer.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(buffer, 0, buffer.length);
ouputStream.flush();
ouputStream.close();
}
} catch (Exception e) {
throw new ServletException(e);
}
}
}
