Servlet implementation class for Servlet: geraRelatorio
*/
public class ServletRelatorio extends HttpServlet {
static final long serialVersionUID = 1L;
@SuppressWarnings("unused")
private static String caminhoJava;
//Para abrir a conexão com o banco é necessario emprementar uma classe no java só para fazer a requesição de abrir as sessões com banco.
private Connection conexao;
public ServletRelatorio() {
conexao = ConexaoFactory.getConnection();
}
@SuppressWarnings("unchecked")
public void doGet(HttpServletRequest request, HttpServletResponse response) {
caminhoJava = this.getServletContext().getRealPath("WEB-INF/classes");
// o getParameter é responsavel por recuperar os parametros passado pela url.
String relatorio = request.getParameter("relatorio");
// compara se o relatorio é do gerar Os Por data.
if(relatorio.equals("osData")){
try {
relatorioOsPorData(request, response);
} catch (JRException e) {
e.printStackTrace();
}
}
}
/**
* metodo que gera relatorio de ordem de servico por data
* @param request
* @param response
* @throws JRException
*/
@SuppressWarnings("unchecked")
private void relatorioOsPorData(HttpServletRequest request, HttpServletResponse response) throws JRException {
HashMap parametro = new HashMap();
@SuppressWarnings("unused")
Date dataInicial, dataFinal = null;
String relatorio = caminhoJava + "\relatorio/osData.jasper";
String dtInicial = request.getParameter("dataInicial");
String dtFinal = request.getParameter("dataFinal");
//É necessario emprementar uma classe para formatação das data para [Date]
dataInicial = util.Funcoes.FormataData(dtInicial);
dataFinal = util.Funcoes.FormataData(dtFinal);
parametro.put("dataInicial", dataInicial);
parametro.put("dataFinal", dataFinal);
byte[] pdf = JasperRunManager.runReportToPdf(relatorio, parametro, conexao);
this.exibirRelatorio(pdf, response);
}
/** metodo que exibe os relatorios* */
public void exibirRelatorio(byte[] relatorio, HttpServletResponse response) {
ServletOutputStream out = null;
response.setContentType("application/pdf");
try {
out = response.getOutputStream();
out.write(relatorio);
} catch (IOException e) {
e.printStackTrace();
}
}