<%@page import="com.fitbank.common.logger.FitbankLogger"%><%@page import="net.sf.jasperreports.engine.*"%> <%@page import="net.sf.jasperreports.engine.export.*"%> <%@page import="com.jaspersoft.jasperserver.api.metadata.xml.domain.impl.*"%> <%@page import="java.util.*"%> <%@page import="com.fitbank.jasperserver.*"%> <% java.io.OutputStream os = null; try { if(session.getAttribute("estilo")==null)throw new Exception("El Usuario no esta en sesion"); new Login().execute(session); WSClient client = (WSClient)session.getAttribute("client"); String currentUri = request.getParameter("uri"); if (currentUri == null || currentUri.length() ==0) currentUri = "/"; if (currentUri.length() > 1 && currentUri.endsWith("/")) currentUri = currentUri.substring(0, currentUri.length()-1); ResourceDescriptor reportUnit = null; Enumeration enum_params = request.getParameterNames(); Map hashMap = new HashMap(); while (enum_params.hasMoreElements()) { String key = ""+enum_params.nextElement(); FitbankLogger.getLogger().debug( key+" => " + request.getParameter( key ) + "\n"); hashMap.put( key, request.getParameter( key ) ); } JasperPrint print = null; synchronized(client){ print = client.runReport( currentUri, hashMap ); } net.sf.jasperreports.engine.JRExporter exporter=null; String format=request.getParameter("format"); if(format==null){ format="pdf"; } if (format.equals("html")) { response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); exporter = new net.sf.jasperreports.engine.export.JRHtmlExporter(); request.getSession().setAttribute(net.sf.jasperreports.j2ee.servlets.ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, print); exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image?cache="+(new Double((Math.random()*100000))).intValue()+"&image="); } else if (format.equals("pdf")) { response.setContentType("application/pdf"); exporter = new net.sf.jasperreports.engine.export.JRPdfExporter(); } else if (request.getParameter("format").equals("text")) { response.setContentType("text/plain"); exporter = new net.sf.jasperreports.engine.export.JRTextExporter(); exporter.setParameter(JRTextExporterParameter.CHARACTER_WIDTH, new Integer("8")); exporter.setParameter(JRTextExporterParameter.CHARACTER_HEIGHT, new Integer("4")); } else if (format.equals("xls")) { response.setContentType("application/msexcel"); response.setHeader("Content-Disposition"," inline; filename=report.xls"); exporter = new net.sf.jasperreports.engine.export.JExcelApiExporter(); } os = response.getOutputStream(); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,os); exporter.setParameter(JRExporterParameter.JASPER_PRINT,print); exporter.exportReport(); return; } catch (Exception ex) { ex.printStackTrace(); if (os != null) { java.io.PrintWriter pw = new java.io.PrintWriter(os); pw.write("

El reporte no puede ser mostrado

"); pw.write(""+ex.getMessage()+""); if(ex.getCause()!=null){ pw.write(""+ex.getCause().getMessage()+""); } } else { out.write("

El reporte no puede ser mostrado

"); out.write(""+ex.getMessage()+""); if(ex.getCause()!=null){ out.write(""+ex.getCause().getMessage()+""); } } //return; } %>