Programación en castellano
Inicio > Foros > Java (Servlets y JSP) > Generar reportes desde un Resultset en un JSP
-Foros de debate

Java (Servlets y JSP)
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Generar reportes desde un Resultset en un JSP
Enviado por Gerardo el día 16 de abril de 2008

Saludos a todos los colaboradores de este foro.

Mi problematica es, que tengo un pagina jsp en la cual se genera una consula dinamica en base a parametros de filtro que el usuario seleccione (registros de la fecha tal, o del mes tal).

Despues de desplegar la consulta, es necesario mandar a imprimir estos resultados, pero requiero que estos datos que estan en un Resulset, aparezcan en un reporte para imprimir.

No se que erramienta usar, o quizas haya un Servlet al que le pueda enviar este Resultset y este me genere el reporte imprimible?

Agradezco de antemano que se tomen el tiempo para leer este tema.

 
Re: Generar reportes desde un Resultset en un JSP
Enviado por malone el día 16 de abril de 2008

Yo genere algo parecido en PDF.
Genere el reporte con IREPORT (el formato) y luego por medio de un servlet y JasperReports lo integre para desplegarlo a travez de una pagina web.

primero genera tu reporte con IREPORTS y te puedo ayyudar a integrarlo con un servlet.

 
Re: Re: Generar reportes desde un Resultset en un JSP
Enviado por jorhs el día 14 de octubre de 2008

si podrian poner un pedasito del codigo para poder integrar el codigo en un servlet, x favor es que tengo el mismo problema

 
Re: Re: Re: Generar reportes desde un Resultset en un JSP
Enviado por malone el día 20 de octubre de 2008

1./ Generas por medio de una JSP la solicitud de tus parametros fechas, campos etc.
2. Generas por medio de IREPORT tu reporte, tambien con estos parametros de por medio

3. Envias desde la jsp llamr tu servlet AQUI el ejemplo del SERVLET.

/*
* Reportes.java
*
* Created on 1 de febrero de 2007, 12:53 PM
*/

package ciea.almacen;
import java.io.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.DataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.*;

/**
*
* @author pedro
* @version
*/
public class Reportes extends HttpServlet {



/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
private DataSource ds;

private PreparedStatement pstmt;

private ResultSet resultSet;
public void init() throws ServletException {

super.init();

ServletContext context = getServletContext();
//System.out.println(\"Context \" + context);

}


protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connection conn = null;
Map parameters = new HashMap();
String tipoReporte = request.getParameter(\"tipoReporte\");
String status = request.getParameter(\"kstatus\");
String statusA = request.getParameter(\"kstatusA\");
String finicioS = request.getParameter(\"kperiodoI\");
String ffinalS = request.getParameter(\"kperiodoF\");
String capturo = request.getRemoteUser();
String titulo = null;
String tipoMovto = null;
String reportFileName = null;
String empleado = null;
String sql = null;
java.text.SimpleDateFormat sdf = null;
sdf = new java.text.SimpleDateFormat(\"dd/MM/yyyy\"); // PARA DB2


try {
java.util.Date fechaI = sdf.parse(request.getParameter(\"kperiodoI\"));
java.sql.Date fechaInicial = new java.sql.Date(fechaI.getTime());
java.util.Date fechaF = sdf.parse(request.getParameter(\"kperiodoF\"));
java.sql.Date fechaFinal = new java.sql.Date(fechaF.getTime());

// Get a database connection
conn = getConnection();
ServletContext context = getServletContext();

if (tipoReporte.equals(\"1\")){
titulo = \"CONCENTRADO DE BIENES: \";
if (status.equals(\"A\")){
titulo += \"FÍSICO \" ;
}
if (status.equals(\"B\")){
titulo += \"BAJAS \" ;
}
if (status.equals(\"C\")){
titulo += \"CONSUMO \" ;
}
if (status.equals(\"F\")){
titulo += \"FALTANTES \" ;
}
titulo += \"EN EL PERÍODO \" + finicioS + \" AL \" + ffinalS + \" POR CUENTA CONTABLE.\";

parameters.put(\"status\", status);
parameters.put(\"titulo\", titulo);
parameters.put(\"finicio\", fechaInicial);
parameters.put(\"ffinal\", fechaFinal);

reportFileName = \"acumCtaStatus\";

sql = \"select KARDEX.kcuenta, KARDEX.ksubcta, KARDEX.kssbcta, CUENTAS.ctitcta, Sum(KARDEX.kcosto)\"+
\" AS SumaDeKCOSTO FROM KARDEX INNER JOIN CUENTAS ON (KARDEX.KSSBCTA = CUENTAS.CSSBCTA) AND \"+
\"(KARDEX.KSUBCTA = CUENTAS.CSUBCTA) AND (KARDEX.KCUENTA = CUENTAS.CCUENTA)WHERE \"+
\"kardex.KSTATUS = ? AND kperiodo >=? AND \"+
\"kperiodo <= ? GROUP BY KARDEX.KCUENTA, KARDEX.KSUBCTA, KARDEX.KSSBCTA, CUENTAS.CTITCTA order \"+
\" by kardex.kcuenta,kardex.ksubcta,kardex.kssbcta \";

pstmt = conn.prepareStatement(sql);
pstmt.setString(1,status);
pstmt.setDate(2,fechaInicial);
pstmt.setDate(3,fechaFinal);
resultSet = pstmt.executeQuery();


}


// JasperReport jasperReport = getCompiledReport(reportFileName);
// generatePDFOutput(response, parameters, jasperReport);

JasperReport jasperReport = getCompiledReport(reportFileName);
ServletOutputStream servletOutputStream = response.getOutputStream();
InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream(\"/reportes/\"+reportFileName+\".jasper\");
JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet);
JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream,parameters,resultSetDataSource);
resultSet.close();
resultSet= null;
conn.close();
conn = null;
servletOutputStream.flush();
servletOutputStream.close();

} catch (Exception e) {
request.setAttribute(\"exception\", e);
try {
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
conn = null;
getServletContext().getRequestDispatcher( \"/jsp/exception.jsp\").forward(request,response);
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException sqle) {
// Ignore
}
}
}


}

// <editor-fold defaultstate=\"collapsed\" desc=\"HttpServlet methods. Click on the + sign on the left to edit the code.\">
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return \"Short description\";
}
// </editor-fold>

private DataSource getDataSource() throws NamingException {
if (ds == null) {
Context ctx = new InitialContext();
Context envContext = (Context)ctx.lookup(\"java:/comp/env\");
ds = (DataSource)envContext.lookup(\"jdbc/poolDB\");
}
return ds;
}
private Connection getConnection() throws SQLException, NamingException {
return getDataSource().getConnection();
}
private JasperReport getCompiledReport(String fileName)
throws JRException {
File reportFile =
new File(
getServletContext().getRealPath(
\"/reportes/\" + fileName + \".jasper\"));

// If compiled file is not found, then
// compile XML template
if (!reportFile.exists()) {
JasperCompileManager.compileReportToFile(
getServletContext().getRealPath(
\"/reportes/\" + fileName + \".jrxml\"));
}

JasperReport jasperReport =
(JasperReport) JRLoader.loadObject(reportFile.getPath());

return jasperReport;
}

private void generatePDFOutput(
HttpServletResponse response,
Map parameters,
JasperReport jasperReport)
throws JRException, NamingException, SQLException, IOException {

byte[] bytes = null;

bytes =
JasperRunManager.runReportToPdf(
jasperReport,
parameters,
getConnection());

response.setContentType(\"application/pdf\");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();


}

}

 




Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados