Reportes desde Apex utilizando iReport (Jasper Report Integration)

Espero que se encuentren muy bien. Ahora estoy aprendiendo apex y oracle asi que voy a compartirlo con ustedes, espero les sea útil. S
aludos, cualquier duda o sugerencia es bienvenida!!...
Requisitos:Tomcant 6.0 link: http://tomcat.apache.org/download-60.cgi
  • Jasper Reports Integration v1.1.0.0 link: http://www.opal-consulting.de/apex/f?p=20090928:2:2707698194225308
  • iReport 3.7.4 (Jaspersoft iReport Designer), es la herramienta utilizada para diseñar y crear la plantilla del reporte.
  • Jdk 1.6, jre6 (pueden descargarlo desde la pagina oficial de oracle)
  • ojdbc5.jar libreria de conexion entre el iReport y oracle. Esta t sirve para que pueda realizar tus plantillas.
Antes de describir como pueden integrar apex 4.0 con jasperReport deben tener instalada la base de datos oracle (11g), el apex 4.0.Este proceso lo realice en dos maquinas windows de 32 y en otra de 64 bits. Pronto subiré la instación en linux. Paso 1: Instalar las jdk y el jre.
  1. En las variables de entorno, crear en pathname: JRE_HOME con la ruta en donde tienen instalado ej jre, en mi caso es: C:\Program Files\Java\jre6
  2. En las varibales de entorno, agregar en su JAVA_HOME la ruta en donde tienen instalado el jdk, recuerden separados por ;(punto y coma), en mi caso es: ;C:\Program Files\Java\jdk1.6.0_19
Paso 2: Instalar tomcant 6.0La instalació
n es muy intuitiva, pero es importante si tienen instalado oracle en el puerto 8080, trabajar con otro puerto, en mi caso cambie el puerto por el 8181 Paso 3: Integración (Estos son los pasos mas importantes)
  1. Descompriman el JasperReportsIntegration-1.1.0.0.zip
  2. Copien los archivos: ojdbc14.jar, y el orai18n.jar ubicados en JasperReportsIntegration-1.1.0.0\lib en la carpeta del Tomcat6.0\lib. Puende ayudarse de las imagenes siguientes.
  3. Copie el archivo .war llamado JasperReportsIntegration, ubicado en el archivo descomprido JasperReportsIntegration-1.1.0.0\webapp. Este archivo colocar en la carpeta del Tomcat6.0\webapps, en mi caso ruta total es: C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps
  4. Cambia en propiedades la ejecución de manual a Automático, luego reiniciar el Tomcat.
  5. Dirigirse a la carpeta localhost ubicada en Tomcat 6.0\conf\Catalina\localhost, en mi caso es: C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina\localhost. Dentro de esta carpeta encontraran un archivo llamado: JasperReportsIntegration.xml, abrir para editarlo.
  6. En este archivo encontraran las configuraciones por defecto (Resource), pero debe ser configurado para la Base de datos que van a utilizar, así como para el usuario que tenga. Un ejemplo de un datasource es el siguiente:

"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:XE"
username="tita"
password="98iu"
/>"
En donde:
"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@RUTA_CONEXION:PUERTO_DE_CONEXION:NOMBRE_DE_SU_BD"
username="NOMBRE_USUARIO"
password="CONTRASEÑA_USUARIO"
/>"
Esto pueden agregarlo sin eliminar los Resource por defecto, pueden hacerlo al final, pero siempre dentro del "" ""
Pueden agregar Resource por cada una de las conexiones que se desee realizar. Reiniciar el Tomcat
Paso 4: Instalar el iReport para realizar el diseño de la plantilla de su reporte.
  1. Crear la conexión entre iReport y oracle, aqui utiliza el ojdbc5.jar
Paso 5: Copie los reportes en la carpeta Tomcat
6.0\webapps\JasperReportsIntegration\reports, en mi caso: C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\JasperReportsIntegration\reports
Al utilizar el iReport se generan dos archivos, uno .jrxml y el .jasper, el primero se lo utiliza cuando se desee editar la plantilla o reporte, y el segundo es el ejecutable del diseño, aqui

se llama al .jasper
Paso 6: Ejecute en su navegador el siguiente TEST:
En la ruta http://[server
]:[port]/JasperReportsIntegration

Observe la siguiente imagen. Escriba el nombre de la plantilla diseñada en la casilla _repName, seleccione el formato en el que desea exportar en la casilla _repFormat, el nombre de su base en Datasource en la casilla _dataSource, nombre del reporte en la casilla _outFilename, puede seleccionar el idioma y el tipo de codificación en las dos ultimas casillas.

El reporte se generará correctamente.
NOTA: Si al ejecutar se presenta el error de datasource desconocida esto significa que el Resource configurado en el archivo JasperReportsIntegration.xml es incorrecta. Modifiquela e intente nuevamente este test.
Paso 7: Puede importar la aplicación que se encuentra en la carpeta Apex dentro del JasperReportsIntegration-1.1.0.0, se llama f860_JasperIntegrationTest_1.1.0.0.sql, ahi pueden ver como generar los reportes desde apex.

Lo que hice para adaptarlo a mi aplicacion de apex es lo siguiente:
Para llamar desde apex al reporte necesitan crear
7.1. En mi caso cree los siguientes items:
  • P54_JASPER_URL_REPORTE, tipo hidden, con default value: http://direccion_servidor:8181/JasperReportsIntegration/report
  • P54_NOMBRE_REPORTE, tipo hidden, con default value: (aqui el nombre de mi archivo .jasper)
  • P54_BD, tipo hidden, con default value: (aqui va el nombre de su BD)
  • P54_LOCATE, tipo hidden, con default value: es_EC
  • P54_CODIFICACION, tipo hidden, con default value: UTF-8
  • P54_FORMATO, tipo select list, con default value: STATIC2:pdf;pdf,word;rtf
  • P54_TITULO, tipo text Field, con default value: Reporte
  • P54_ADICIONALES, tipo hidden, con default value: :P54_ADICIONAL1 y el Default Value Type: PL/SQL Expresion
  • P54_REPORT_URL, tipo hidden, con default value: http://direccion_servidor:8181/JasperReportsIntegration/report?_repName=report_Becas2&_repFormat=pdf&_dataSource=ECUADOR&_outFilename=&_repLocale=de_DE&_repEncoding=UTF-8parameter1=:P54_ADICIONAL1
7.2: Luego deben crear un item con las siguientes caracteristicas:
  • Display As: Display Only
  • Begin on new line: No
  • Template: No label
  • Source:
  • - Source USed: Only when current value in session state is null
  • - Source Type: Static Assignment (value equals source attribute)
  • - Source value or expression: ""
7.3: Luego en el page, se dirigen a HTML Header and Body Attribute, ahí pegan el sigueinte script:
Debe recordar que yo solo utilice un parámetro, pero pueden agregar mas parametros, agregarlo en ambas funciones.
Utilizo también un boton buscar que es submit para cargar el reporte en apex, ahi se actualizan los datos de mi reporte, y luego al hacer clic
en el botón generar reporte, recoge los valores de mi campo P54_REPORT_URL.
Importante: * El manual que utilice es el siguiente: http://www.apexninjas.com/blog/f?p=100:1:420044564712244::::P1_ARTICLE:2080

Comentarios

rommelchess dijo…
contactame conmigo, quisiera que me ayudes con un tema de APEX.

rleon@senati.edu.pe

Saludos,

Rommel León
Katty Landacay dijo…
Hola Rommel perdon recien leo tu comentario. Dime si te puedo ayudar con todo gusto.
Ernest dijo…
Hola, Me podrias ayudar a generar un archivo PDF desde una aplicacion APEX ya que no he podido

Saludos..
Roberto PZ dijo…
Este comentario ha sido eliminado por el autor.
Roberto PZ dijo…
Hola, tu post me ha resultado de mucha utilidad, quisiera saber: cómo pasar los argumentos desde Apex a los parámetros de los reportes creados con jasperReports?

Roberto
Erwin dijo…
Hola gracias por este tema me ayudo un mundo ahora estoy haciendo unos video tutoriales sobre el tema no eh terminado para que los veas. espero que les ayude a los demas
http://www.youtube.com/watch?v=txGLdomSvQQ

http://www.youtube.com/watch?v=1t5iFNKHRBo
Mayra Lizbeth dijo…
Hola que tal,

Estoy siguiendo tu tutorial, sin embargo una vez que trato de generar el reporte, me envía un error.

Ya verifiqué que el nombre de la conexión sea correcta y nada. ¿Podrías ayudarme?

Gracias!
testing dijo…
Hola muy bueno el Tutorial, tengo un problema cuando coloco en un boton que llame el URL que se genera de la direccion del reporte no me ejecuta, como que no le pasa los valores del campo al boton, tengo apex 4.1
Manuel dijo…
Hola katty soy nuevo en esto y me gustaria saber si podrias hechar una mano, he visto algunas paginas pero no me han servido de ayuda, mi pregunta es como poder editar una plantilla, para personalizarla.

Mi correo es manolomel1@hotmail.com

Gracias un saludo.
Santiago dijo…
Hola, me podrias ayudar, necesito el .war del jasperreportsintegration me podrias dar un link para descargarlo
Katty Landacay dijo…
http://compartiendoaprendiendo.blogspot.com/
Katty Landacay dijo…
http://ruepprich.wordpress.com/2013/07/11/skillbuilders-modal-page-instructions/
Unknown dijo…
Hola, perdona, espero me puedas ayudar.
Intento descargar los archivos Jasper Reports Integration v x.x.x de OPAL sin éxito, no se si tu tengas algún archivo que me puedas compartir (dacs.math@gmail.com). Te quedaré muy agradecido. Saludos desde Quito. Diego.

Entradas populares