11/08/2009, 09:32
|
| | Fecha de Ingreso: agosto-2009
Mensajes: 8
Antigüedad: 15 años, 5 meses Puntos: 0 | |
Respuesta: Jasper Report + Ireport + Jdeveloper Bueno, prueben lo siguiente, a algunas personas les funciona a otras no.
Aqui contesto las preguntas que puedo:
//------------------------Conexion a Oracle
importa las siguientes librerias primero:
//-----para JSP
<%@ page import = "java.sql.Connection"%>
<%@ page import = "java.sql.DriverManager"%>
<%@ page import = "java.sql.ResultSet"%>
<%@ page import = "java.sql.Statement"%>
//---- para java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
//----------- Para generar la conexion es:
try
{
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@IPS ERVIDOR:1521:NOMBRESERVIDOR", "USUARIO", "PASSWORD");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
//------------------------------------Para reportes en Jdeveloper 10 u 11g
Debemos copiar desde la carpeta lib de nuestro IReport, los siguientes jar :
itext-1.3.1.jar
jasperreports-2.0.4.jar
jasperreports-extensions-1.3.1.jar
poi-2.5.1-final-20040804
Luego pegarlos en la carpeta WEB-INF/lib de nuestro proyecto web.
En la lista podemos ver las librerias itext y el poi, estas librerias nos serviran para los reportes en pdf y excel respectivamente.
Debemos crear una carpeta dentro del WEB-INF, su nombre sera "reports", al interior de este carpeta pegaremos el archivo mi_reporte_javix.jasper (recuerde que este archivo lo generamos en el anterior articulo), este archivo se encuentra en la carpeta principal de su IReport.
Vamos al proyecto ViewController darle doble clic y agregaremos las librerias,darle clic al boton add Jar/Directory
Ahora vamos al faces-config.xml y diseñamos la siguiente navegacion entre paginas
Tenemos dos paginas , la navegacion tiene el nombre de "dialog:jspreporte".
ht tp : // 2.bp.blogspot.com/_fPTO8TmboVs/SgZjE5IiNTI/AAAAAAAAAEI/vaziArMLKa0/s1600-h/blog11.jpg
El diseño de la pagina index.jsp seria el siguiente:
ht tp : // 1.bp.blogspot.com/_fPTO8TmboVs/SgZw1gMOQMI/AAAAAAAAAEQ/t1a_Vno7qt4/s1600-h/blog12.jpg
Modifique las siguientes propiedades del boton "Generar Reporte":
useWindow="true"
windowHeight="800"
windowWidth="600"
Debe capturar el valor del selectonechoice que almacena el area luego cargarlo como variable session a idarea.
Programacion del boton "generar reporte" en el backing:
FacesContext context = javax.faces.context.FacesContext.getCurrentInstanc e();
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
session.setAttribute("idarea",idarea);
return "dialog:jspreporte";
Para generar el reporte necesita una conexion a una base de datos.
try
{
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@IPS ERVIDOR:1521:NOMBRESERVIDOR", "USUARIO", "PASSWORD");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
Continuando ya se tiene el archivo reporte, la clase de conexion, ahora falta la pagina que soportara el reporte, para este ejemplo ejecutaremos un reporte en pdf y al dar clic al boton "generar reporte" automaticamente debera aparecer una ventana emergente mostrando un pdf con la informacion solicitada.
Para ello debemos programar la pagina reporte.jsp con el siguiente codigo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http :// www . w3 . org/TR/html4/loose.dtd">
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.design.*" %>
<%@ page import="net.sf.jasperreports.engine.data.*"%>
<%@ page import="net.sf.jasperreports.engine.export.*"%>
<%@ page import="net.sf.jasperreports.engine.util.*"%>
<%@ page import="net.sf.jasperreports.view.*"%>
<%@ page import="net.sf.jasperreports.view.save.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page contentType="text/html;charset=windows-1252"%>
<html>
<head><title>Reporte Javier Calizaya!</title>
<script language="JavaScript">
function regresar(){
history.back();
}
function error(){
alert("Error encontrando procesando el periodo: " + periodo);
history.back();
}
</script>
</head>
<%
try{
com.javix.pe.model.db.OracleDBConn objDBConn =new com.javix.pe.model.db.OracleDBConn() ;
Connection conn = null ;
conn = objDBConn.getConexion();
System.setProperty("jasper.reports.compile.class.p ath",application.getRealPath("/WEB-INF/lib/jasperreports-2.0.4.jar") +
System.getProperty("path.separator") +
application.getRealPath("/WEB-INF/classes/")
);
System.setProperty(
"jasper.reports.compile.temp",
application.getRealPath("/reports/")
);
File reportFile = new File(application.getRealPath("/reports/mi_reporte_javix.jasper"));
Map parameters = new HashMap();
javax.faces.context.FacesContext context = javax.faces.context.FacesContext.getCurrentInstanc e();
parameters.put("idlocal",session.getAttribute("ida rea").toString());
byte[] bytes =JasperRunManager.runReportToPdf(reportFile.getPat h(),parameters,conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}catch (JRException e)
{System.out.println("Error:" +e.getMessage());}
catch (Exception e)
{
e.printStackTrace();
System.out.println("Error2:" +e.getMessage());
}
%>
<body >
</body>
</html>
Ejecutar la pagina index.jsp
Última edición por Klerith; 11/08/2009 a las 09:38 |