Reportes Desde Apex Utilizando IReport
-
Upload
victor-de-luis-mendoza -
Category
Documents
-
view
182 -
download
15
description
Transcript of Reportes Desde Apex Utilizando IReport
Reportes desde Apex utilizando iReport (Jasper Report Integration) Hola a tod@s!!
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