Você está na página 1de 5

Instalacin de Jasper Reports Integration

Los siguientes pasos se deben realizar dentro de cada schema de base de datos en el que se quiera integrar los
reportes.

Database installation (SYS):

1.- En la consola posicionarse en el subdirectorio sql

Cmd: cd sql

2.- Conectarse a sqlplus como SYS en la instancia local

Cmd: sqlplus sys/dba@[database] as sysdba

3.- Ejecutar el script de instalacin con el nombre del esquema donde se instalar el integrador

sqlplus: @sys_install [schema]

4.- [opcional] En caso de tener instalado Oracle Release 11.0 o Superior

Cmd: @sys_install_act [schema]

Database installation (Application Schema):

1.- En la consola posicionarse en el subdirectorio sql

Cmd: cd sql

2.- Conectarse a sqlplus como el usuario donde se instalar el integrador

Cmd: sqlplus [schema]/[password schema]@[database]

3.- Ejecutar el script de instalacin

sqlplus: @user_install

Estos pasos crean una serie de package y tablas que permiten el funcionamiento de jasper reports en APEX:

Entre las tablas tenemos: XLIB_COMPONENTS y XLIB_LOGS

Entre los Packages: XLIB_HTTP, XLIB_JASPERREPORTS y XLIB_LOG

Igualmente una serie de ndices, pero cada uno de los objetos con el prefijo XLIB_ para identificarlos fcilmente
Tomcat Installation:

1.- instalar el driver oracle JDBC

Copiar todos los archivos de la carbeta lib\ en los correspondientes directorios:

Tomcat 6.x: [Tomcat directory]\lib


Tomcat 5.5.x: [Tomcat directory]\common\lib

Copiar los archivos service start.bat y service stop.bat en la carpeta donde se instal jasper y donde se
encuentra servicerun.bat

2.- Ejecutar service stop.bat para detener TOMCAT, luego seguir con los pasos.

3.- Copiar el archivo tomcat-users en el directorio [Tomcat directory]\ conf y remplazar el existente, este paso
habilita el usuario tiaca (password: secure12) a ser usado en el manager de TOMCAT.

3.- Copiar el archivo webapp\JasperReportsIntegration.war en el directorio [Tomcat directory]\webapps

4.- Ejecutar service start.bat para que el archivo WAR se compile, de esta forma se crea el directorio [Tomcat
directory]\webapps\JasperReportsIntegration y el archivo
[tomcatdirectory]\conf\Catalina\localhost\JasperReportsIntegration.xml, una vez que se creen los anteriores
directorios se ejecuta el archivo service stop.bat para detener TOMCAT.

5.- Configurar los datasources JNDI (Esta conexin es la que ser utilizada por el reporte)

Aqu se configuran todos los datasources que sern usados en cualquier aplicacin.

Se configuran en el archivo [tomcat directory]\conf\Catalina\localhost\JasperReportsIntegration.xml


<Resource name="jdbc/NAME_DATASOURCE" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
maxActive="20" maxIdle="10" maxWait="-1"
initialSize="4" minIdle="3" validationQuery="select user from dual"
testWhileIdle="true" testOnBorrow="true" timeBetweenEvictionRunsMillis="300000"
numTestsPerEvictionRun="100" minEvictableIdleTimeMillis="10000"

url="jdbc:oracle:thin:@localhost:1521:DATABASE"
username="SCHEMA_INSTALLATION"
password="PASSWORD_INSTALLATION"
/>

6.- Los archivos fuente de los reportes creados (ejem. Reporte.jasper y reporte.jrxml) deben guardarse en el
directorio:

[Tomcat directory]\webapps\JasperReportsIntegration\reports

Pudiendo agruparse por carpetas

7.- Eliminar el archivo webapp\JasperReportsIntegration.war y ejecutar service start.bat para iniciar TOMCAT.

8.- De esta forma debe quedar la carpeta JasperReportIntegration


No se deben eliminar ningn archivo o carpeta, solo se puede editar el contenido de la carpeta reports
Como ejecutar un reporte desde Apex
begin
xlib_jasperreports.set_report_url('http://[server_ip]:8080/JasperReportsIntegration/report
');
xlib_jasperreports.show_report (p_rep_name => :p5_rep_name,
p_rep_format => :p5_rep_format,
p_data_source => :p5_data_source,
p_out_filename => :p5_out_filename,
p_rep_locale => :p5_rep_locale,
p_rep_encoding => :p5_rep_encoding,
p_additional_params => :p5_additional_params);

-- stop rendering of the current APEX page


apex_application.g_unrecoverable_error := true;
end;

Here is a description of the input parameters:

default
parameter description required?
value
_repName Nombre del Reporte en la Carpeta Reports test *
_repFormat Formato del Reporte: pdf, html, rtf, xls, jxl, csv, xlsx, pptx or docx pdf *
_dataSource Data source JDNI definido en el archivo de JasperReportsIntegration.xml default *
_outFilename Nombre de archivo por defecto

Locale string, composed of the


ISO language code and
ISO country code
_repLocale es_VE
Ejem.: es_VE

De este depende que se muestre la moneda en Bs.F. y algunas otras cosas.

Character Set, se pueden encontrar aqui.


_repEncoding E.g.: ISO-8859-15, UTF-8, Windows-1252 UTF-8

Parametros del Reporte


additional
Importante: Al momento de crear un reporte, cada parmetro de entrada,
parameters
debe ser tipo String obligatoriamente, y luego ser convertido.
Para ahorrar parte de este cdigo cre una funcin en el paquete xlib_jasperreports llamada print_report y
esta es su implementacin:

XLIB_JASPERREPORTS.print_report (
'nombre_del_reporte' ,
'pdf' ,
'newpap_bod1', --Datasource
'Nombre_archivo_salida.pdf',
'',
'',
'wcedula=' || :P0_CEDULA ||
'&wstatus=' || :P1_STATUS ||
'&wdesde=' || :P1_FECHA_DESDE ||
'&whasta=' || :P1_FECHA_HASTA);

--Parmetros del Reporte(Deben llamarse igual que como se crearon en iReport y es sensible a
maysculas y minsculas)

Si no se especifica un nombre de archivo al documento se puede mostrar directamente en pantalla


(dependiendo del navegador).
En caso de que se quiera almacenar el pdf en la base de datos, aqu hay un ejemplo de la funcin a utilizar (y
comentada la forma anterior; usando FOP):

declare
l_report blob;
l_mime VARCHAR2(200);
wparams VARCHAR2(200);
begin
--l_report := apex_util.get_print_document (
-- p_application_id => :APP_ID,
-- p_report_query_name => 'ReporteNovedades',
-- p_report_layout_name => 'ReporteNovedades',
-- p_report_layout_type => 'xso-fo',
-- p_document_format => 'pdf'
--);
wparams := 'wnoveid=' || :P516_NOVE_NOVEID || &wparam2= || :P0_PARAM2;
XLIB_JASPERREPORTS.get_print_report (
'nombre_reporte_carpeta_report' ,
'formato_por_ejemplo:pdf' ,
'datasource' ,
'' ,
'' ,
wparams ,
l_report,
l_mime
);
insert into uw_tpdfs (pdfs_pdfsid, pdfs_filename, pdfs_mimetype,
pdfs_pdfs, pdfs_feccre, pdfs_usecre, pdfs_tpso)
values (:P516_NOVE_NOVEID, 'Novedades ('||to_char(sysdate,'DDMMYYYY')||')',
l_mime, l_report, sysdate, F_USER,9999);
--
:W_SOLI := :P516_NOVE_NOVEID;
:W_TPSO := 9999;
:P516_NOVE_STATUS := 3;
:P515_PRINT:='S';
END;

Você também pode gostar