Categorias
iiiiii
Jasper report integration
Descripcion
Para imprimir un reporte en apex se debe ejecutar
php
// Noya muy importante, se debe crear este proceso y ponerlo en DESPUES DE LA CABECERA DE APEX.
// descargar codigo fuente del paquete https://github.com/daust/JasperReportsIntegration
/*
conectarse con sqlplus
> sqlplus sys/sys as sysdba;
> @sys_install.sql NOMBRE_SQUEMA -- ejecutamos los permisos necesarios para el esquima donde se va instalar
> ALTER SESSION SET CONTAINER = myDB; --cambiamos a la instancia de base de datos
> ALTER SESSION SET CURRENT_SCHEMA = MYUSER; -- nos cambiamos al esquema donde se va a instalar el paquete
> grant UNLIMITED TABLESPACE to MYUSER; -- Con esta linea lo que realizamos es permitir al esquema mensionado poder escribir en otros tablespace.
> @user_install.sql -- ejecuramos el instalador conectado con el esquema correcto
NOTA: en caso de que salgan errores de paquetes o tipos de datos o objectos de sequencias, eliminarlos y volver a ejecutar lo anterior.
tambien a la hora de configurar jasperreport su fuentes de datos ,
es decir su conexion a la base de datos buscar el archivo (C:\app\julian\product\18.0.0\dbhomeXE\network\admin\sqlnet.ora)
y
<!--Configuracion Fuentes de datos de jasper-->
si se tiene problemas con las fuentes de datos de jasper (que jasper se conecte a la base de datos).
1. editar el archivo C:\app\julian\product\18.0.0\dbhomeXE\network\admin\sqlnet.ora
2. Pegar las siguientes lineas en el. si no existe crearlo
#SQLNET.AUTHENTICATION_SERVICES= (NTS)
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
3. alterar el usuario con el cual se conectaa jasper a la base de datos.
ALTER USER USER_NAME IDENTIFIED BY password.;
LINKS donde de apollo para instalacion exitosa
http://zelioman.blogspot.com/2012/06/oracle-error-ora-01950-no-privileges-on.html
https://dba.stackexchange.com/questions/252168/oracle-database-how-to-switch-instance
https://www.discoduroderoer.es/solucion-a-ora-65096-invalid-common-user-or-role-name-en-oracle/
https://www.opal-consulting.de/downloads/free_tools/JasperReportsIntegration/2.4.0/
*/
declare
l_proc varchar2(100) := 'show report';
l_report_url varchar2(32767 char) :='http://172.17.3.148:8082/JasperReportsIntegration/report';
l_additional_parameters varchar2(4000);
v_save_as varchar2(2000);
v_image varchar2(2000);
v_report_name varchar2(255);
v_name_folder varchar2(2000) :='';
BEGIN
select
REPORT_NAME
into v_save_as
from tb_reports where report_id = 99;
--:P2_REPORT_ID ;
/*Traemos el nombre del reporte*/
select path_file into v_report_name from tb_reports where report_id = 99; --:P2_REPORT_ID;
/*Seteamos la ruta del archivo .jasper. ejemplo: Micarpeta/reporte */
v_report_name := v_name_folder||v_report_name;
/*Aumentamos el time out a 5m */
utl_http.set_transfer_timeout (300);
l_additional_parameters := '?p_persona='|| 94508031||'&p_remitente='; --:P2_APP_NUMBER_ID;
v_save_as := replace(v_save_as,' ','_')||'.pdf';
xlog (l_proc, 'url (orig):' || l_report_url);
xlib_jasperreports.set_report_url(l_report_url);
xlib_jasperreports.show_report (
p_rep_name =>v_report_name,
p_rep_format => null,
p_data_source => 'REMUNER',
p_out_filename => v_save_as -- si dese que el reporte se imprima en la pagina se debe mandar nulo y si desea que se descargue se debe mandar el nombre del archivo,
p_rep_locale => 'en_US',
p_rep_encoding => 'UTF-8',
p_additional_params => l_additional_parameters,
p_print_is_enabled => false,
p_print_printer_name => null,
p_print_media => null,
p_print_copies => null,
p_print_duplex => false,
p_print_collate => false,
p_save_is_enabled => false,
p_save_filename => null,
p_rep_time_zone => null
);
apex_application.stop_apex_engine;
exception
when others then
xlog(l_proc, substr(dbms_utility.format_error_backtrace,1,3500), 'ERROR');
raise;
end;