package com.FitBank.web.servlet; import com.FitBank.common.Debug; import com.FitBank.common.Servicios; import com.FitBank.xml.Formas.*; import com.FitBank.xml.Mensaje.Bloque; import java.io.FileOutputStream; import java.sql.Date; import java.text.SimpleDateFormat; /** * Servlet invocado de la ventana Parámetros de Reporte Pdf que permitira ejecutar la lógica del * proceso de generación de los reportes de consulta pdf. * * @author FitBank */ public class MostrarConsultaPdf extends BaseServlets { private static final String PATH_LOGO_IMG = "/imagenes/internacional/logo_internacional.jpg"; protected void inicializar() { aceptarGet(); aceptarPost(); verificarSesion(); } protected void procesarPedido() { int block = Integer.valueOf(pedido.getParameter("bloque")).intValue(); int numPage = Integer.valueOf(pedido.getParameter("numeroPagina")).intValue(); int numRows = Integer.valueOf(pedido.getParameter("numeroRegistros")).intValue(); String clear = Servicios.verificarCadena(pedido.getParameter("CLEAR")); if(clear.equals("true")) evento.procesoXml.limpiarFormulario(true); else { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date fReal = new Date(System.currentTimeMillis()); String pathImagen = getServletConfig().getServletContext().getRealPath(PATH_LOGO_IMG); String fecHorReal = sdf.format(fReal); String fecContable = evento.getFechaContable(); String codSub = evento.getSubsistema(); String codTra = evento.getTransaccion(); String codUsu = evento.getUsuario(); String keyReport = fecHorReal + " / " + fecContable + " / " + codUsu + " / " + codSub + "-" + codTra; evento.procesoXml.getXmlMensaje().setDetalle(evento.procesoXml.xmlMensajeConsulta.detalle[0] ,0); ((Bloque)evento.procesoXml.getXmlMensaje().detalle[0].elementAt(block)).setNroPagina(numPage); ((Bloque)evento.procesoXml.getXmlMensaje().detalle[0].elementAt(block)).setNroRegistros(numRows); evento.ejecutarConsultaPdf(pedido, numRows == -1); numRows = evento.getNroRegistrosBloque(block); String foFileData = ""; int i = 0; int j = 0; FBloque b = evento.procesoXml.getXmlFormulario().getBloque(block); for(int f = 0; f < b.size(); f++) { if(b.getFila(f).clonar()) { i = b.getFila(f).getVentanaClon(); j = b.getFila(f).getMaximoClon(); b.getFila(f).setVentanaClon(numRows + 1); b.getFila(f).setMaximoClon(numRows + 1); b.getFila(f).actualizarHijos(); } } evento.procesoXml.llenarFormulario(); GeneradorXslFo gen = new GeneradorXslFo(pathImagen, keyReport, block); foFileData = gen.toXslFo(evento.procesoXml.getXmlFormulario()); for(int f = 0; f < b.size(); f++) { if(b.getFila(f).clonar()) { b.getFila(f).setVentanaClon(i); b.getFila(f).setMaximoClon(j); } } try { FileOutputStream f = new FileOutputStream("c:/pdf.xml"); f.write(foFileData.getBytes()); f.close(); } catch (Exception e) { Debug.imprimirError(e); } sesion.setAttribute("fo", foFileData); try { getServletConfig().getServletContext().getRequestDispatcher("/FBSTOPDF").forward(pedido, respuesta); } catch (Exception e) { Debug.imprimirError(e); } } } }