imprimir codigo qr en oracle reports 6, 6i

Dado que el uso de códigos qr ha venido en aumento, dado su capacidad para codificar información en mayor o menor medida, presentaremos acá dos enfoque para su incorporación en aplicaciones basadas en oracle forms y reports,

  1. Solución desde el sitio del servidor (side server)

Existen varias implementaciones de generadores de código qr:

https://github.com/svetka17/make_qr

https://github.com/zorantica/plsql-qr-code

para este tutorial, optaremos por utlizar el primero https://github.com/svetka17/make_qr el cual debe instalarse desde una consola sql, tal como sqlplus o sql developer (ambiente grafico).

Acá se trata de utilizar las capacidades de la base de datos para la generacion y almacenamiento del codigo, en particular, teniendo en cuenta que los codigos qr son representaciones graficas, el tipo de dato oracle que podemos utilizar para ello es tipo BLOB

Así, la implementación crea el package make_qr dentro del cual utilizaremos la funcion qr_bin, que permite obtener el codigo qr, expresado como un valor de tipo de dato blob.

Requisitos:

Oracle database 10g o superior

Demostracion


SQL> MAKE_QR_package.sql
SQL> @MAKE_QR_body.sql

SQL> CREATE TABLE tabla1(id number, codigoqr blob);
SQL> INSERT INTO tabla1 VALUES (make_qr.qr_bin('Cadena de texto para contenido del codigo qr'));

Test en reports

Configuracion del elemento del campo blob correspondiente al codigoqr

ejecutar el reporte

2. Solucion desde el lado del cliente (client side)

Para este caso, la generación del código se deja a una aplicación tercera como un jar, por ejemplo (aunque puede ser también algún ejecutable )

  1. desde oracle forms se invoca el llamado al jar (que generará el archivo de imagen del codigo qr)

http://www.lecciones.info/index.php/2021/08/15/qr-code-for-java-6/

Ejecucion desde oracle forms:

host ( ‘java -jar qrcode-gen.jar “Contenido para el codigoqr” “nombrearchivo.jpg” “tamaño” )

ejemplo:

host ( ‘java -jar qrcode-gen.jar “Contenido para el codigoqr” “demo2.jpg” “200” )

2. Posteriormente, se invoca el llamado al reporte oracle , en donde se obtiene dinamicamente la imagen a mostrar

Diseño del reporte;

Crear una columna de formula (Formula Column), indicando tipo de dato Character pues retornará el nombre del archivo de imagen a cargar en reports. Read from file: yes, y File Format: yes

El contenido de la columna de formula, es simplemente una formula que puede concatenar la llave para consulta en el report, y como en este cas, concatenarla , para retornar el path de la imagen

FUNCTION CF_1Formula 
return CHAR
IS
  file_path varchar(500);
BEGIN  
  
  file_path  := 'C:\carpeta\i_' || :p_invoice_id || '.jpg';   
  return file_path;

END;

En el layout, las propiedades del elemento para la columna de formula:

Ejecutar:

Atento a sus comentarios,

Leave a Reply