miércoles, 3 de agosto de 2011

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

Sueños de Informáticos!!

A veces... bueno no... siempre me he preguntado porque elegimos algo, la carrera, tu pareja, tus amig@s, mentir o decir la verdad, bueno siempre elegiges... para que???ahora he comprendido que los sueños son los responsables... elegiges algo porque quieres algo, elegiges no engañar porque no quieres que hagan lo mismo contigo, eliges estar con alguien porque crees y sientes que vas a pasar bien junto a su lado, y bueno, eliges tu carrera para ser alguien... no verdad??? eliges porque tu sueño es el de crear, diseñar construir algo mejor, mas sofisticado... y por eso eres un informático porque analizas todo y sabes lo importante que es escalar paso a paso....

Sistemas 2009

Sistemas 2009
disfrutnado con mis amig@s en la cena de sistemas...