Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/08/2009, 09:32
Klerith
 
Fecha de Ingreso: agosto-2009
Mensajes: 8
Antigüedad: 14 años, 9 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