TECNOLOBO

No recuerdas tu codigo?
Se te olvido como se hace?

Aqui podras guardar lo que necesiten
Y cuando sea necesesario

Creado por julian gomez
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;