Seleccionar página

APEX_DATA_EXPORT

apex_data_export

Escrito por: Eddie Molina

Oracle ACE Pro. Oracle APEX Cloud Developer Certified Professional. Presidente de ORAUGCRC (Grupo de Usuarios Oracle de Costa Rica). Miembro de líderes de LAOUC. Conferencista, consultor, desarrollador y capacitador en tecnologías Oracle, especialmente Oracle Application Express con más de 30 años de experiencia.

16/04/2022

El paquete APEX_DATA_EXPORT contiene la implementación para exportar datos desde Oracle APEX. Los tipos de archivo admitidos incluyen: PDF, XLSX, HTML, CSV, XML y JSON.

Utilice la función EXPORT para pasar un contexto de consulta del paquete APEX_EXEC y devolver el tipo t_export, que incluye los contenidos en un LOB.

Las siguientes constantes se utilizan en el paquete APEX_DATA_EXPORT.

Constantes utilizadas en la función EXPORT. Los formatos c_format_pxml y c_format_pjson están optimizados para la impresión. (Formato de exportación)

c_format_csv constant t_format := ‘CSV’;
c_format_html constant t_format := ‘HTML’;
c_format_pdf constant t_format := ‘PDF’;
c_format_xlsx constant t_format := ‘XLSX’;
c_format_xml constant t_format := ‘XML’;
c_format_pxml constant t_format := ‘PXML’;
c_format_json constant t_format := ‘JSON’;
c_format_pjson constant t_format := ‘PJSON’;

Constantes utilizadas en los métodos ADD_COLUMN, ADD_COLUMN_GROUP y GET_PRINT_CONFIG. (Alineado)

c_align_start constant t_alignment := ‘LEFT’;
c_align_center constant t_alignment := ‘CENTER’;
c_align_end constant t_alignment := ‘RIGHT’;

Constantes utilizadas en el procedimiento DOWNLOAD. (Disposición de contenido)

c_attachment constant t_content_disposition := ‘attachment’;
c_inline constant t_content_disposition := ‘inline’;

Constantes utilizadas en la función GET_PRINT_CONFIG. (Unidades de tamaño)

c_unit_inches constant t_unit := ‘INCHES’;
c_unit_millimeters constant t_unit := ‘MILLIMETERS’;
c_unit_centimeters constant t_unit := ‘CENTIMETERS’;
c_unit_points constant t_unit := ‘POINTS’;

Constantes utilizadas en la función GET_PRINT_CONFIG. (Tamaño predefinido)

c_size_letter constant t_size := ‘LETTER’;
c_size_legal constant t_size := ‘LEGAL’;
c_size_tabloid constant t_size := ‘TABLOID’;
c_size_A4 constant t_size := ‘A4’;
c_size_A3 constant t_size := ‘A3’;
c_size_custom constant t_size := ‘CUSTOM’;

Constantes utilizadas en la función GET_PRINT_CONFIG. (Unidades de ancho de columna)

c_width_unit_percentage constant t_width_unit := ‘PERCENTAGE’;
c_width_unit_points constant t_width_unit := ‘POINTS’;
c_width_unit_pixels constant t_width_unit := ‘PIXELS’;

Constantes utilizadas en la función GET_PRINT_CONFIG. (Orientación de página)

c_orientation_portrait constant t_orientation := ‘VERTICAL’;
c_orientation_landscape constant t_orientation := ‘HORIZONTAL’;

Constantes utilizadas en la función GET_PRINT_CONFIG. (Familia de fuente)

c_font_family_helvetica constant t_font_family := ‘Helvetica’;
c_font_family_times constant t_font_family := ‘Times’;
c_font_family_courier constant t_font_family := ‘Courier’;

Constantes utilizadas en la función GET_PRINT_CONFIG. (Grosor de fuente)

c_font_weight_normal constant t_font_weight := ‘normal’;
c_font_weight_bold constant t_font_weight := ‘bold’;

El paquete también utiliza los siguientes tipos de datos.

Genéricos:

subtype t_alignment is varchar2(255);
subtype t_label is varchar2(255);
subtype t_color is varchar2(4000);
subtype t_format is varchar2(20);
subtype t_content_disposition is varchar2(30);
subtype t_unit is varchar2(4000);
subtype t_size is varchar2(4000);
subtype t_width_unit is varchar2(255);
subtype t_orientation is varchar2(4000);
subtype t_font_family is varchar2(4000);
subtype t_font_weight is varchar2(4000);

Objeto resultante de una exportación:

type t_export is record (
     file_name varchar2(32767),
     format t_format,
     mime_type varchar2(32767),
     as_clob boolean,
     content_blob blob,
     content_clob clob );

Grupos de columnas:

type t_column_group is record (
     name varchar2(255),
     alignment t_alignment,
     parent_group_idx pls_integer );

type t_column_groups is table of t_column_group index by pls_integer;

Columnas:

type t_column is record (
     name apex_exec.t_column_name,
     heading varchar2(255),
     format_mask varchar2(4000),
     heading_alignment t_alignment,
     value_alignment t_alignment,
     width number,
     is_column_break boolean,
     is_frozen boolean,
     column_group_idx pls_integer );

type t_columns is table of t_column index by pls_integer;

Resaltado:

type t_highlight is record (
     id number,
     name varchar2(4000),
     value_column apex_exec.t_column_name,
     display_column apex_exec.t_column_name,
     text_color t_color,
     background_color t_color );

type t_highlights is table of t_highlight index by pls_integer;

Agregaciones:

type t_aggregate is record (
     label t_label,
     format_mask varchar2(4000),
     display_column apex_exec.t_column_name,
     value_column apex_exec.t_column_name,
     overall_label t_label,
     overall_value_column apex_exec.t_column_name );

type t_aggregates is table of t_aggregate index by pls_integer;

Configuración de impresión:

type t_print_config is record (
     units t_unit,
     paper_size t_size,
     width_units t_width_unit,
     width number,
     height number,
     orientation t_orientation,
     page_header varchar2(4000),
     page_header_font_color t_color,
     page_header_font_family t_font_family,
     page_header_font_weight t_font_weight,
     page_header_font_size varchar2(4000),
     page_header_alignment t_alignment,
     page_footer varchar2(4000),
     page_footer_font_color t_color,
     page_footer_font_family t_font_family,
     page_footer_font_weight t_font_weight,
     page_footer_font_size varchar2(4000),
     page_footer_alignment t_alignment,
     header_bg_color t_color,
     header_font_color t_color,
     header_font_family t_font_family,
     header_font_weight t_font_weight,
     header_font_size varchar2(4000),
     body_bg_color t_color,
     body_font_color t_color,
     body_font_family t_font_family,
     body_font_weight t_font_weight,
     body_font_size varchar2(4000),
     border_width number,
     border_color t_color );

El paquete está compuesto por las siguientes funciones y procedimientos.

Procedimiento ADD_AGGREGATE

Este procedimiento agrega un agregado a la colección de agregados. Las colecciones agregadas se pueden pasar a las llamadas EXPORT para agregar una fila agregada. Este procedimiento se puede usar en combinación con cortes de control o de forma independiente para agregados generales.

Si se pasa una colección agregada vacía (o ninguna colección agregada), no se representan filas agregadas en la exportación.

Este procedimiento requiere una columna agregada. El valor es el total agregado actual (para cortes de control) o el total general.

La sintaxis del procedimiento es:

PROCEDURE ADD_AGGREGATE(
     p_aggregates IN OUT NOCOPY t_aggregates,
     p_label IN t_label,
     p_format_mask IN VARCHAR2 DEFAULT NULL,
     p_display_column IN apex_exec.t_column_name,
     p_value_column IN apex_exec.t_column_name,
     p_overall_label IN t_label DEFAULT NULL,
     p_overall_value_column IN apex_exec.t_column_name DEFAULT NULL );

Donde:

Parámetro Descripción
p_aggregates Colección agregada.
p_label Etiqueta de agregado.
p_format_mask Máscara de formato a aplicar al valor agregado.
p_display_column Nombre de la columna donde desplegar el agregado.
p_value_column Nombre de la columna que contiene el valor del agregado.
p_overall_label Etiqueta general.
p_overall_value_column Nombre de la columna que contiene el valor del agregado general.

Un ejemplo del uso de este procedimiento es:

DECLARE
     l_aggregates apex_data_export.t_aggregates;
     l_columns apex_data_export.t_columns;
     l_context apex_exec.t_context;
     l_export apex_data_export.t_export;
BEGIN
     apex_data_export.add_aggregate(
          p_aggregates => l_aggregates,
          p_label => ‘Sum’,
          p_format_mask => ‘FML999G999G999G999G990D00’,
          p_display_column => ‘SAL’,
          p_value_column => ‘AGGREGATE1’,
          p_overall_label => ‘Total sum’,
          p_overall_value_column => ‘OVERALL1’ );

               apex_data_export.add_column( p_columns => l_columns, p_name => ‘DEPTNO’, p_is_column_break => true );
               apex_data_export.add_column( p_columns => l_columns, p_name => ‘EMPNO’);
               apex_data_export.add_column( p_columns => l_columns, p_name => ‘ENAME’);
               apex_data_export.add_column( p_columns => l_columns, p_name => ‘SAL’);

     l_context := apex_exec.open_query_context(
          p_location => apex_exec.c_location_local_db,
          p_sql_query => ‘select deptno,
               empno,
               ename,
               sal,
               sum( sal) over ( partition by deptno ) as AGGREGATE1,
               sum( sal) over ( ) as OVERALL1
               FROM emp
               order by deptno’ );

     l_export := apex_data_export.export (
          p_context => l_context,
          p_format => apex_data_export.c_format_pdf,
          p_columns => l_columns,
          p_aggregates => l_aggregates );

     apex_exec.close( l_context );

     apex_data_export.download( p_export => l_export );

EXCEPTION
     WHEN others THEN
          apex_exec.close( l_context );
     raise;
END;

 

 

Procedimiento ADD_COLUMN

Este procedimiento agrega una columna a la colección de columnas. Las colecciones de columnas se pueden pasar a las llamadas EXPORT para devolver solo un subconjunto de las columnas en la exportación. Si pasa una colección de columnas vacía (o ninguna colección de columnas), todas las columnas definidas en el contexto de consulta se agregan a la exportación.

La sintaxis del procedimiento es:


PROCEDURE ADD_COLUMN (
     p_columns IN OUT NOCOPY t_columns,
     p_name IN apex_exec.t_column_name,
     p_heading IN VARCHAR2 DEFAULT NULL,
     p_format_mask IN VARCHAR2 DEFAULT NULL,
     p_heading_alignment IN t_alignment DEFAULT NULL,
     p_value_alignment IN t_alignment DEFAULT NULL,
     p_width IN NUMBER DEFAULT NULL,
     p_is_column_break IN BOOLEAN DEFAULT FALSE,
     p_is_frozen IN BOOLEAN DEFAULT FALSE,
     p_column_group_idx IN PLS_INTEGER DEFAULT NULL );

Donde:

Parámetro Descripción
p_columns Colección de columna.
p_name Nombre de columna.
p_heading Texto de encabezado de columna.
p_format_mask Máscara de formato aplicada. Util para exportaciones XLSX donde se utilizan tipos de datos nativos.
p_heading_alignment Alineado de encabezado de columna. Son valores válidos: LEFT, CENTER, RIGHT.
p_value_alignment Alineado de valor de columna. Son valores válidos: LEFT, CENTER, RIGHT.
p_width Solamente PDF. El ancho de la columna. Por defecto las unidades están como porcentaje. Las unidades pueden ser modificadas actualizando el width_units de la cinfiguración de impresión.
p_is_column_break Se debe utilizar esta colulmna para divisiones de control?
p_is_frozen Solamente XLSX. Se debe congelar la columna?
p_column_group_idx El índice de un grupo de columnas. Si se utiliza, esta columna será parte del grupo de columnas.

Un ejemplo del uso de este procedimiento es:

DECLARE
     l_context apex_exec.t_context;

     l_export apex_data_export.t_export;
     l_columns apex_data_export.t_columns;

BEGIN
     l_context := apex_exec.open_query_context(
          p_location => apex_exec.c_location_local_db,
          p_sql_query => ‘select * from emp’ );

     apex_data_export.add_column(
          p_columns => l_columns,
          p_name => ‘ENAME’,
          p_heading => ‘Name’ );

     apex_data_export.add_column(
          p_columns => l_columns,
          p_name => ‘JOB’,
          p_heading => ‘Job’ );

     apex_data_export.add_column(
          p_columns => l_columns,
          p_name => ‘SAL’,
          p_heading => ‘Salary’,
          p_format_mask => ‘FML999G999G999G999G990D00’ );

     l_export := apex_data_export.export (
          p_context => l_context,
          p_format => apex_data_export.c_format_html,
          p_columns => l_columns,
          p_file_name => ’employees’ );

     apex_exec.close( l_context );

     apex_data_export.download( p_export => l_export );

EXCEPTION
     WHEN others THEN
          apex_exec.close( l_context );
          raise;
END;

 

Procedimiento ADD_COLUMN_GROUP

Este procedimiento agrega un grupo de columnas a la colección de grupos de columnas. Las colecciones de grupos de columnas se pueden pasar a las llamadas EXPORT para agrupar columnas usando una fila de encabezado adicional. Si pasa una colección de grupos de columnas vacía (o ninguna colección de grupos de columnas), no se agrega ningún grupo de columnas a la exportación. Puede crear varios niveles de grupos de columnas.

La sintaxis del procedimiento es:

PROCEDURE ADD_COLUMN_GROUP (
     p_column_groups IN OUT NOCOPY t_column_groups,
     p_idx OUT PLS_INTEGER,
     p_name IN VARCHAR2,
     p_alignment IN t_alignment DEFAULT c_align_center,
     p_parent_group_idx IN PLS_INTEGER DEFAULT NULL );

Donde:

Parámetro Descripcióin
p_column_groups Colección de grupo de columnas.
p_idx El índice generado en la colección de columnas.
p_name Nombre del grupo de columnas.
p_alignment Alineado del grupo de columnas. Los valores válidos son:  LEFT,  CENTER (default),  RIGHT.
p_parent_group_idx El índice del grupo de columnas padre.

Un ejemplo del uso de este procedimiento es:

DECLARE
     l_context apex_exec.t_context;

     l_export apex_data_export.t_export;
     l_column_groups apex_data_export.t_column_groups;
     l_columns apex_data_export.t_columns;

     — Column group indexes
     l_identity_idx pls_integer;
     l_compensation_idx pls_integer;
BEGIN

     l_context := apex_exec.open_query_context(
          p_location => apex_exec.c_location_local_db,
          p_sql_query => ‘select * from emp’ );

     — Define column groups
     apex_data_export.add_column_group(
          p_column_groups => l_column_groups,
          p_idx => l_identity_idx,
          p_name => ‘Identity’ );

     apex_data_export.add_column_group(
          p_column_groups => l_column_groups,
          p_idx => l_compensation_idx,
          p_name => ‘Compensation’ );

     — Define columns
     apex_data_export.add_column(
          p_columns => l_columns,
          p_name => ‘ENAME’,
          p_heading => ‘Name’,
          p_column_group_idx => l_identity_idx );

     apex_data_export.add_column(
          p_columns => l_columns,
          p_name => ‘JOB’,
          p_heading => ‘Job’,
          p_column_group_idx => l_identity_idx );

     apex_data_export.add_column(
          p_columns => l_columns,
          p_name => ‘SAL’,
          p_heading => ‘Salary’,
          p_column_group_idx => l_compensation_idx );

     apex_data_export.add_column(
          p_columns => l_columns,
          p_name => ‘COMM’,
          p_heading => ‘Commission’,
          p_column_group_idx => l_compensation_idx );

     l_export := apex_data_export.export (
          p_context => l_context,
          p_format => apex_data_export.c_format_html,
          p_columns => l_columns,
          p_column_groups => l_column_groups,
          p_file_name => ’employees’ );

     apex_exec.close( l_context );

     apex_data_export.download( p_export => l_export );

EXCEPTION
     when others THEN
          apex_exec.close( l_context );
          raise;
END;

 

 

Procedimiento ADD_HIGHLIGHT

Este procedimiento agrega un resaltado a la colección de resaltados. Las colecciones destacadas se pueden pasar a las llamadas EXPORT para resaltar una fila o una columna en una fila. Si no se pasa ninguna colección de resaltados (o una colección de resaltados vacía), no se procesan los resaltados en la exportación.

Este procedimiento requiere una columna resaltada. El valor es el ID cuando se deben aplicar los resaltados, de lo contrario, NULL.

La sintaxis del procedimiento es:

PROCEDURE ADD_HIGHLIGHT (
     p_highlights IN OUT NOCOPY t_highlights,
     p_id IN pls_integer,
     p_value_column IN apex_exec.t_column_name,
     p_display_column IN apex_exec.t_column_name DEFAULT NULL,
     p_text_color IN t_color DEFAULT NULL,
     p_background_color IN t_color DEFAULT NULL );

Donde:

Parámetro Descripción
p_highlights Colección de resaltados.
p_id Identificador del resaltado.
p_value_column Nombre de la columna a verificar por el identificador del resaltado.
p_display_column Nombre de la columna donde desplegar el resaltado. Deje vacío para resaltado de líneas.
p_text_color Código hexadecimal del color del texto (#FF0000).
p_background_color Código hexadecimal del color de fondo (#FF0000).

Un ejemplo del uso de este procedimiento es:

DECLARE
     l_highlights apex_data_export.t_highlights;
     l_context apex_exec.t_context;
     l_export apex_data_export.t_export;
BEGIN
     apex_data_export.add_highlight(
          p_highlights => l_highlights,
          p_id => 1,
          p_value_column => ‘HIGHLIGHT1’,
          p_display_column => ‘SAL’,
          p_text_color => ‘#FF0000’ );

     l_context := apex_exec.open_query_context(
          p_location => apex_exec.c_location_local_db,
          p_sql_query => ‘select empno,
               ename,
               sal,
               case when sal >= 3000 then 1 end as HIGHLIGHT1
               from emp’ );

     l_export := apex_data_export.export (
          p_context => l_context,
          p_format => apex_data_export.c_format_pdf,
          p_highlights => l_highlights );

     apex_exec.close( l_context );

     apex_data_export.download( p_export => l_export );

EXCEPTION
     when others THEN
          apex_exec.close( l_context );
          raise;
END;

Procedimiento DOWNLOAD

Este procedimiento descarga la exportación de datos llamando a APEX_APPLICATION.STOP_APEX_ENGINE.

La sintaxis del procedimiento es:

PROCEDURE DOWNLOAD (
     p_export IN OUT NOCOPY t_export,
     p_content_disposition IN t_content_disposition DEFAULT c_attachment,
     p_stop_apex_engine IN BOOLEAN DEFAULT TRUE );

Donde:

Parámetro Descripción
p_export El objeto resultante de una exportación.
p_content_disposition Especifica si descargar el documento a imprimir o mostrarlo en línea (“adjunto” o “en línea”).
p_stop_apex_engine Si se debe llamar APEX_APPLICATION.STOP_APEX_ENGINE.

Un ejemplo del uso de este procedimiento es:

DECLARE
     l_context apex_exec.t_context;
     l_export apex_data_export.t_export;
BEGIN
     l_context := apex_exec.open_query_context(
          p_location => apex_exec.c_location_local_db,
          p_sql_query => ‘select * from emp’ );

     l_export := apex_data_export.export (
          p_context => l_context,
          p_format => apex_data_export.c_format_csv,
          p_file_name => ’employees’ );

     apex_exec.close( l_context );

     apex_data_export.download( p_export => l_export );

EXCEPTION
     when others THEN
          apex_exec.close( l_context );
          raise;
END;

Función EXPORT

Esta función exporta el contexto de consulta en el formato especificado.

Esta función devuelve el archivo de exportación como objeto que incluye el contenido, el tipo MIME y el nombre del archivo.

La sintaxis de la función es:

FUNCTION EXPORT (
     p_context IN apex_exec.t_context,
     p_format IN t_format,
     p_as_clob IN BOOLEAN DEFAULT false,
     p_columns IN t_columns DEFAULT c_empty_columns,
     p_column_groups IN t_column_groups DEFAULT c_empty_column_groups,
     p_aggregates IN t_aggregates DEFAULT c_empty_aggregates,
     p_highlights IN t_highlights DEFAULT c_empty_highlights,
     —
     p_file_name IN VARCHAR2 DEFAULT NULL,
     p_print_config IN t_print_config DEFAULT c_empty_print_config,
     p_page_header IN VARCHAR2 DEFAULT NULL,
     p_page_footer IN VARCHAR2 DEFAULT NULL,
     p_supplemental_text IN VARCHAR2 DEFAULT NULL,
     —
     p_csv_enclosed_by IN VARCHAR2 DEFAULT NULL,
     p_csv_separator IN VARCHAR2 DEFAULT NULL,
     —
     p_pdf_accessible IN BOOLEAN DEFAULT NULL,
     —
     p_xml_include_declaration IN BOOLEAN DEFAULT false )
RETURN t_export

Donde:

Parámetro Descripción
p_context Objeto de contexto de la infraestructura EXEC.
p_format Formato de exportación. Son valores válidos: XLSX, PDF, HTML, CSV, XML y JSON.
p_as_clob Exportar como un CLOB en lugar de un BLOB (valor por defecto FALSE).
p_columns Colección de atributos de columna que comienza con saltos de columna, luego en el orden de visualización.
p_column_groups Colección de atributos de grupo de columnas en el orden de niveles y visualización.
p_aggregates Recopilación de agregados de informes.
p_highlights Colección de resaltados de informe.
p_file_name Define el nombre de archivo de la exportación.
p_print_config Usado para EXCEL y PDF para definir los atributos de impresión.
p_page_header Texto que aparecerá en la sección de encabezado del documento. Anula el encabezado de página de p_print_config.
p_page_footer Texto que aparecerá en la sección de pie de página del documento. Anula el pie de página de p_print_config.
p_supplemental_text Texto en la parte superior de todos los formatos de descarga.
p_csv_enclosed_by Se utiliza para CSV para encerrar la salida.
p_csv_separator Usado para CSV para separar los valores de columna.
p_pdf_accessible Usado para PDF para crear un PDF accesible.
p_xml_include_declaration Usado para XML para generar la declaración XML como la primera línea.

Un ejemplo del uso de esta función es:

DECLARE
     l_context apex_exec.t_context;
     l_export apex_data_export.t_export;
BEGIN
     l_context := apex_exec.open_query_context(
          p_location => apex_exec.c_location_local_db,
          p_sql_query => ‘select * from emp’ );

     l_export := apex_data_export.export (
          p_context => l_context,
          p_format => apex_data_export.c_format_pdf );

     apex_exec.close( l_context );

     apex_data_export.download( p_export => l_export );

EXCEPTION
     when others THEN
          apex_exec.close( l_context );
          raise;
END;

Procedimiento GET_PRINT_CONFIG

Esta función prepara la configuración de impresión para diseñar la exportación de datos.

  • Los colores se especifican mediante notación hexadecimal (hexadecimal), códigos de colores RGB o nombres de colores HTML.
  • Las opciones de alineación incluyen: Izquierda, Centro, Derecha.
  • Las opciones de la familia de fuentes incluyen: Helvetica, Times, Courier.
  • Las opciones de grosor de fuente incluyen: Normal, Negrita

La sintaxis del procedimiento es:

FUNCTION GET_PRINT_CONFIG(
     p_units IN t_unit DEFAULT c_unit_inches,
     p_paper_size IN t_size DEFAULT c_size_letter,
     p_width_units IN t_width_unit DEFAULT c_width_unit_percentage,
     p_width IN NUMBER DEFAULT 11,
     p_height IN NUMBER DEFAULT 8.5,
     p_orientation IN t_orientation DEFAULT c_orientation_landscape,
     —
     p_page_header IN VARCHAR2 DEFAULT NULL,
     p_page_header_font_color IN t_color DEFAULT ‘#000000’,
     p_page_header_font_family IN t_font_family DEFAULT c_font_family_helvetica,
     p_page_header_font_weight IN t_font_weight DEFAULT c_font_weight_normal,
     p_page_header_font_size IN NUMBER DEFAULT 12,
     p_page_header_alignment IN t_alignment DEFAULT c_align_center,
     —
     p_page_footer IN VARCHAR2 DEFAULT NULL,
     p_page_footer_font_color IN t_color DEFAULT ‘#000000’,
     p_page_footer_font_family IN t_font_family DEFAULT c_font_family_helvetica,
     p_page_footer_font_weight IN t_font_weight DEFAULT c_font_weight_normal,
     p_page_footer_font_size IN NUMBER DEFAULT 12,
     p_page_footer_alignment IN t_alignment DEFAULT c_align_center,
     —
     p_header_bg_color IN t_color DEFAULT ‘#EEEEEE’,
     p_header_font_color IN t_color DEFAULT ‘#000000’,
     p_header_font_family IN t_font_family DEFAULT c_font_family_helvetica,
     p_header_font_weight IN t_font_weight DEFAULT c_font_weight_bold,
     p_header_font_size IN NUMBER DEFAULT 10,
     —
     p_body_bg_color IN t_color DEFAULT ‘#FFFFFF’,
     p_body_font_color IN t_color DEFAULT ‘#000000’,
     p_body_font_family IN t_font_family DEFAULT c_font_family_helvetica,
     p_body_font_weight IN t_font_weight DEFAULT c_font_weight_normal,
     p_body_font_size IN NUMBER DEFAULT 10,
     —
     p_border_width IN NUMBER DEFAULT .5,
     p_border_color IN t_color DEFAULT ‘#666666’ ) return t_print_config;

El procedimiento retorna la configuración de impresión para diseñar la exportación de datos.

Donde:

Parámetro Descripción
p_units

Seleccione las unidades utilizadas para especificar el ancho y la altura de la página.

Los valores válidos son: Inches, Millimeters, Centimeters, Points

p_paper_size

PDF solamente. Seleccione el tamaño de página del informe. Para escribir su propio ancho y alto de página, seleccione Personalizado.

Las opciones disponibles incluyen: Letter, Legal, Tabloid, A4, A3, Custom

p_width_units

PDF solamente. Seleccione las unidades utilizadas para especificar los anchos de columna.

Los valores válidos son: Percentage, Points, Pixels

p_width PDF solamente. El ancho de la página.
p_height PDF solamente. El alto de la página.
p_orientation

La orientación de la página. PDF solamente.

Las opciones disponibles incluyen: Vertical (Portrait), Horizontal (Landscape)

p_page_header Texto que aparecerá en la sección de encabezado del documento.
p_page_header_font_color El color de fuente del encabezado de la página.
p_page_header_font_family La familia de fuentes de encabezado de página.
p_page_header_font_weight El peso de la fuente del encabezado de la página.
p_page_header_font_size El tamaño de fuente del encabezado de la página.
p_page_header_alignment La alineación del texto del encabezado de la página.
p_page_footer Texto que aparecerá en la sección de pie de página del documento.
p_page_footer_font_color El color de fuente del pie de página.
p_page_footer_font_family La familia de fuentes de pie de página.
p_page_footer_font_weight El peso de la fuente del pie de página.
p_page_footer_font_size El tamaño de fuente del pie de página.
p_page_footer_alignment La alineación del texto del pie de página.
p_header_bg_color El color de fondo del encabezado de la tabla.
p_header_font_color El color de fuente del encabezado de la tabla.
p_header_font_family La familia de fuentes de encabezado de tabla.
p_header_font_weight El peso de la fuente del encabezado de la tabla.
p_header_font_size El tamaño de fuente del encabezado de la tabla.
p_body_bg_color El color de fondo del cuerpo de la tabla.
p_body_font_color El color de fuente del cuerpo de la tabla.
p_body_font_family La familia tipográfica del cuerpo de la tabla.
p_body_font_weight El peso de la fuente del cuerpo de la tabla.
p_body_font_size El tamaño de fuente del cuerpo de la tabla.
p_border_width El ancho de los bordes.
p_border_color El color de los bordes.

Un ejemplo del uso de este procedimiento es:

DECLARE
     l_context apex_exec.t_context;
     l_print_config apex_data_export.t_print_config;
     l_export apex_data_export.t_export;
BEGIN
     l_context := apex_exec.open_query_context(
          p_location => apex_exec.c_location_local_db,
          p_sql_query => ‘select * from emp’ );

     l_print_config := apex_data_export.get_print_config(
          p_orientation => apex_data_export.c_orientation_portrait,
          p_border_width => 2 );

     l_export := apex_data_export.export (
          p_context => l_context,
          p_print_config => l_print_config,
          p_format => apex_data_export.c_format_pdf );

     apex_exec.close( l_context );

     apex_data_export.download( p_export => l_export );

EXCEPTION
     when others THEN
          apex_exec.close( l_context );
          raise;
END;

También te puede gustar…

Share This