Cómo crear un informe compuesto

En esta sección:

Los informes compuestos combinan informes múltiples en un solo archivo. Esto permite concatenar informes con formatos de estilo (como PDF, DHTML, PS, EXL2K o EXL07K). También puede insertar archivos de imágenes, incluyendo gráficos guardados como imágenes, en un informe compuesto.

Existen tres tipos de informe compuesto:

Aunque la longitud del informe siempre incluye todas las filas de datos generadas por la consulta, el ancho está limitado por el tamaño del contenedor de componentes definido. Esto indica que el uso de paneles no se admite en informes compuestos, aunque sí en informes PDF que no sean compuestos. En documentos PDF que no sean compuestos, si el ancho de los datos del informe es superior al tamaño definido de la página, se genera un panel (o página de desbordamiento horizontal) automáticamente. Esta característica de paneles no se admite en documentos compuestos PDF, así que cada componente compuesto debe caber dentro del ancho del contenedor definido, para que el informe se genere correctamente. El tamaño del contenedor está definido en cada tipo de informe.

Para más información sobre cómo crear informes PDF compuestos con vínculos drill through, consulte Cómo crear un informe compuesto PDF con vínculos drill through.


Principio de página

x
Cómo crear un informe de diseño compuesto con la sintaxis del Compositor de documentos

Cómo:

Referencia:

Normalmente, los informes de diseño compuestos se crean mediante las opciones de la herramienta Compositor de documentos. Opcionalmente, puede crear un informe de diseño compuesto modificando la sintaxis desde la pestaña Editor de texto del Compositor de documentos o en cualquier editor de texto.

Nota: Para más detalles sobre cómo crear un informe de diseño compuesto, mediante la herramienta Compositor de documentos, consulte Cómo crear un informe de diseño compuesto, en el manual Cómo crear informes compuestos con el Compositor de documentos.

La sintaxis de informe de diseño compuesto está estructurada por un bloque de diseño compuesto, que coloca toda la información del diseño en un bloque individual que precede al informe. El bloque empieza por una declaración COMPOUND LAYOUT y termina por END. El lenguaje que contiene está basado en la sintaxis de hoja de estilos y se analiza mediante el Analizador de hojas de estilos.

Es compatible con los formatos con estilo, como PDF, PS, DHTML, EXL2K o EXL07.

Sugerencia: Para más detalles sobre la sintaxis de hojas de estilos, consulte Cómo crear y administrar una hoja de estilos de WebFOCUS.

El bloque de diseño compuesto consiste de declaraciones SECTION, PAGELAYOUT y COMPONENT. La estructura principal del bloque de diseño compuesto de sintaxis es:

COMPOUND LAYOUT PCHOLD AS filename FORMAT format 
SECTION
    PAGELAYOUT
      COMPONENT
      COMPONENT
    ...
    PAGELAYOUT
      COMPONENT
      COMPONENT
    ...
  ...
END
...
COMPOUND END

Nota sobre la declaración de diseño compuesto: Los formatos de salida disponibles para el diseño compuesto son PDF, DHTML, PowerPoint, AHTML, Excel, FLEX y APDF. El formato de diseño compuesto seleccionado anula cualquier formato de salida de informes de los componentes individuales. El nombre del archivo de salida puede definirse mediante una frase AS filename, en el bloque COMPOUND. Si no se define ninguno, se toma el nombre del archivo de la frase ON TABLE HOLD, en el primer informe de componentes.

END indica el final del bloque COMPOUND LAYOUT, mientras que COMPOUND END señala el final del informe compuesto.

Además, la sintaxis SET COMPONENT=report(n) queda añadida después de cada componente, seguida del código real WebFOCUS para generar el informe. Para ver un ejemplo de cómo aparece la sintaxis, consulte Cómo crear un informe de diseño compuesto, en el manual Cómo crear informes compuestos con el Compositor de documentos.

Este tema describe la estructura de la sintaxis de bloque de diseño compuesto y algunos ejemplos.



x
Referencia: Declaración y sintaxis SECTION

La sección de informe compuesto, o declaración SECTION, es un agrupamiento de los informes de componente, dentro de un informe compuesto. Aunque la funcionalidad actual sólo admite informes con una sola sección, esta estructura se emplea para dar soporte a informes más complejos. La declaración SECTION es obligatoria para crear un informe de diseño compuesto.

La sintaxis de SECTION aparece como:

SECTION=section-name, LAYOUT=ON, [MERGE=ON|OFF,]
 [UNITS=IN|CM|PTS,] [PAGESIZE=Style Sheet selections,] [ORIENTATION=PORTRAIT|LANDSCAPE,]
 [LEFTMARGIN=m,] [RIGHTMARGIN=m,]
 [TOPMARGIN=m,] [BOTTOMMARGIN=m,] $

donde:

section-name
Es el identificador único de la sección, con hasta 16 caracteres.
LAYOUT=ON
Indica que la sección emplea un diseño complejo.

Nota: LAYOUT=ON es la única opción aplicable en este momento.

MERGE={ON|OFF}
Indica si la sección está coordinada (fusionada) en base al valor del campo BY inicial.

Nota: El valor predeterminado es OFF.

m
Indica los márgenes (LEFT, RIGHT, TOP, BOTTOM) en pulgadas, centímetros o puntos.

Si los elementos opcionales, UNITS, PAGESIZE, ORIENTATION o MARGIN, están presentes en la declaración SECTION, anulan cualquier configuración de estos parámetros dentro de los informes de componentes, comandos SET globales, comandos ON TABLE SET y palabras claves de hoja de estilos.



x
Referencia: Declaración PAGELAYOUT

SECTION consiste de una o varias declaraciones PAGELAYOUT. Cada una de éstas agrupa un número de declaraciones COMPONENT que aparecen en esa página específica de la sección.

La palabra clave PAGELAYOUT pone entre corchetes el siguiente grupo de declaraciones COMPONENT hasta la próxima palabra clave PAGELAYOUT o el fin de la sección.

La sintaxis de PAGELAYOUT aparece como:

PAGELAYOUT={n|ALL},
 [TOPMARGIN=m,] [BOTTOMMARGIN=m,]$

donde:

{n|ALL}
Indica en qué pagina del diseño multipágina aparecen los componentes. El valor (n) se trata de un número de página en la sección actual o ALL, indicando que el componente aparece en todas las páginas de la sección.
  • Los valores de PAGELAYOUT están numerados a partir del 1. Por ejemplo, si se imprime un informe compuesto por la dos caras de una página, los informes de componente de la parte frontal se especifican como PAGELAYOUT 1 y los de la trasera, PAGELAYOUT 2.

    Nota: La sintaxis es obligatoria incluso cuando el informe sólo tiene una página.

    PAGELAYOUT=1, $
  • La sintaxis PAGELAYOUT=ALL especifica un componente que aparece en todas las páginas. Esto es útil en componentes que generan encabezados o pies de páginas.
    PAGELAYOUT=ALL, $
m
Define los límites (TOP, BOTTOM) de los informes de flujo, en unidades actuales. Para una descripción de los informes de flujo, consulte Declaración COMPONENT.


x
Referencia: Páginas modelo

Los componentes incluidos en una declaración de PAGELAYOUT=ALL aparecen en todas las páginas de salida del informe. Resultan útiles a la hora de crear un tema para el diseño de la salida de informe compuesto:



x
Referencia: Declaración COMPONENT

El orden de las declaraciones COMPONENT, en el bloque COMPOUND LAYOUT, debe coincidir con el orden de ejecución de los informes de componente y debe haber una declaración COMPONENT para cada informe de componente.

Existen dos tipos de componentes: fijos y de flujo. Los componentes fijos llenan el contenedor definido por los parámetros dimensionales en la página y, si hay datos adicionales, se desbordan sobre la página siguiente con el mismo tamaño fijo y en el mismo sitio. Se puede personalizar el tamaño y ubicación del componente de desbordamiento fijo en la página de desbordamiento (usando los parámetros OVERFLOW-POSITION y OVERFLOW-DIMENSION). En los componentes de flujo, los datos fluyen desde la parte superior del componente definido hacia el margen inferior de la página y, después, comienzan a fluir nuevamente sobre el margen superior de la página de desbordamiento, hasta que no haya más datos. La posición inicial de cada tipo de componente está definida por el parámetro POSITION. El aspecto fijo o de flujo del componente está determinado por el parámetro DIMENSION. El parámetro DIMENSION especifica el tamaño de las dimensiones del cuadro de límite de los componentes fijos. Sin embargo, en los componentes de flujo, el parámetro DIMENSION especifica asteriscos (* *) para las dimensiones.

La sintaxis de COMPONENT aparece como:

COMPONENT=component-name, TYPE=component-type,
    POSITION=(x y), DIMENSION=(xsize ysize),
    [OVERFLOW-POSITION=(x y),] [OVERFLOW-DIMENSION=(xsize ysize),] [DRILLMAP=((L1 targetreport)),]    $

donde:

component-name
El nombre del componente debe ser un identificador único de hasta 16 caracteres. Designa un informe de componente que aparece más adelante en la solicitud (en el mismo procedimiento (FOCEXEC) o en un procedimiento llamado) y está identificado por la sintaxis SET COMPONENT=component-name, utilizando el mismo nombre.

Nota: La sintaxis SET sólo etiqueta los informes con estilo que pueden participar en un informe compuesto, para poder colocarse antes de los informes sin estilo que preceden al informe que se va a nombrar. Por ejemplo, informes que generan archivos de extracción.

component-type
Especifica el tipo de componente que se está declarando. El único tipo de componente admitido en estos momentos es REPORT.
POSITION=(x y)
Especifica la coordenada (x y) sobre la página en que se va a colocar la esquina superior izquierda del componente. Todas las coordenadas están en UNIT (pulgadas, por defecto) actuales; (0 0) es la esquina superior izquierda de la página física.

Nota: Por defecto, las coordenadas son ubicaciones absolutas en la página física. Si x o y está precedida por un signo más (+) o un signo menos (-), por ejemplo, (+.25 +0), la coordenada es relativa al margen izquierdo o superior de la página.

DIMENSION=(xsize ysize)
Especifica el tamaño del cuadro de límite del componente (en UNITs actuales).

En los componentes fijos, xsize y ysize deben tratarse de tamaños de dimensión numéricos.

En los componentes de flujo, xsize y ysize deben ser asteriscos DIMENSION = (* *).

OVERFLOW-POSITION=(x y) y OVERFLOW-DIMENSION=(xsize ysize)
Estos elementos opcionales especifican la posición y dimensión de un componente fijo en páginas posteriores, si desborda su cuadro de límite inicial.
DRILLMAP=((L1 targetreport))
Indica el identificador de vínculo y el informe de destino para un hipervínculo drill through desde su informe. En estos momentos, L1 constituye un identificador de vínculo válido. Para más información sobre los informes de drill through, consulte Cómo crear un informe compuesto PDF con vínculos drill through.

Nota: El doble paréntesis es obligatorio.



Ejemplo: Cómo crear un informe de diseño compuesto con la sintaxis del Compositor de documentos

En este simple ejemplo que emplea el archivo máster GGSALES, la palabra clave MERGE especifica que se va a generar un informe de diseño compuesto coordinado. Puesto que el primer camp BY de cada componente es REGION, se genera una página para cada valor de REGION, con el primer informe (Ventas) colocado en (1 1) y el segundo (Unidades), en (6.25 1).

Introduzca la sintaxis siguiente en la pestaña Editor de texto del Compositor de documentos.

SET PAGE-NUM=OFF
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=Sales, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
COMPONENT=Units, TYPE=REPORT, POSITION=(6.25 1), DIMENSION=(4 4), $
END
SET COMPONENT=Sales
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS/F8M
BY REGION NOPRINT
BY ST
BY CITY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=RED, SQUEEZE=ON, $
END
SET COMPONENT=Units
TABLE FILE GGSALES
"Number of unit sales per product for <REGION"
" "
SUM CNT.UNITS AS 'Number of units sold'
BY REGION NOPRINT
BY PRODUCT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=BLUE, SQUEEZE=ON, $
END
COMPOUND END

La sintaxis siguiente es un ejemplo del aspecto que puede presentar el mismo informe, si los informes de componente estuviesen en procedimientos preexistentes (FOCEXEC), como indican R1 y R2.

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=R1, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
COMPONENT=R2, TYPE=REPORT, POSITION=(6 1), DIMENSION=(4 4), $
END
SET COMPONENT=R1
EX REPORT1
SET COMPONENT=R2
EX REPORT2
COMPOUND END

La primera página de salida es:



Ejemplo: Cómo crear un gráfico coordinado con la sintaxis del Compositor de documentos

Este ejemplo, que utiliza el archivo máster GGSALES, genera un informe de diseño compuesto coordinado, que contiene un gráfico y un informe (sustituyendo el primer informe del ejemplo anterior por un gráfico). Tenga en cuenta que las solicitudes de gráfico con dos campos BY generan un gráfico para cada valor del primer campo BY (REGION) y que estos archivos se nombran añadiendo números de secuencia al nombre del archivo HOLD. Por ejemplo, HOLD0.SVG, HOLD1.SVG, etc.

Para colocar estos gráficos en un informe como componente de un informe de diseño compuesto coordinado, es necesario el uso de bastantes comandos COMPUTE para construir el nombre de cada archivo de gráfico (HOLD0.SVG, HOLD1.SVG, etc.). Además, un comando COMPUTE añade los archivos de imagen al HEADING de cada solicitud TABLE para que queden asociados al mismo valor de REGION, donde fueron originados.

Introduzca la sintaxis siguiente en la pestaña Editor de texto del Compositor de documentos.

SET PAGE-NUM=OFF
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=Sales, TYPE=REPORT, POSITION=(0.25 1), DIMENSION=(4 4), $
COMPONENT=Fuel, TYPE=REPORT, POSITION=(7.25 1), DIMENSION=(4 4), $
END
SET COMPONENT=Sales
GRAPH FILE GGSALES
SUM PCT.DOLLARS
BY REGION NOPRINT
BY PRODUCT
ON GRAPH SET LOOKGRAPH HBAR
ON GRAPH HOLD AS HOLD FORMAT SVG
ON GRAPH SET GRAPHSTYLE *
setPlace(true);
setColorMode(1);
setDepthRadius(0);
setDepthAngle(0);
setDisplay(getO1MajorGrid(),false);
setTransparentBorderColor(getFrame(),true);
setDisplay(getDataText(),true);
setTextFormatPreset(getDataText(),28);
setFontSizeAbsolute(getDataText(),true);
setFontSizeInPoints(getDataText(),9);
setPlaceResize(getDataText(),0);
setFontStyle(getDataText(),0);
setTransparentBorderColor(getSeries(0),true);
setDisplay(getO1AxisLine(),false);
setFontSizeAbsolute(getO1Label(),true);
setFontSizeInPoints(getO1Label(),9);
setPlaceResize(getO1Label(),0);
setFontSizeAbsolute(getY1Label(),true);
setFontSizeInPoints(getY1Label(),9);
setPlaceResize(getY1Label(),0);
setTextFormatPreset(getY1Label(),28);
setGridStyle(getY1MajorGrid(),3);
setDisplay(getY1AxisLine(),false);
setDisplay(getY1MajorGrid(),false);
setDisplay(getY1Label(),false);
setDataTextPosition(3);
setTextString(getO1Title(),"");
setTextString(getY1Title(),"");
setFontStyle(getTitle(),0);
END
TABLE FILE GGSALES
"Percent of Sales by Product in <REGION"
" "
SUM
COMPUTE CNTR/I4 = CNTR + 1; NOPRINT
COMPUTE CNTR2/A4 = IF &FOCGRAPHCNT EQ 1 THEN ' ' ELSE FTOA(CNTR-1,'(F4)','A4'); NOPRINT
COMPUTE IMG/A16 = 'HOLD'||LJUST(4,CNTR2,'A4')|| '.svg'; NOPRINT
BY REGION NOPRINT
ON REGION PAGE-BREAK
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
type=HEADING, IMAGE=(IMG), position=(0 0), $
TYPE=REPORT,PAGE-LOCATION=OFF,$
TYPE=REPORT, FONT=HELVETICA, COLOR=BLACK, SQUEEZE=ON, $
END
SET COMPONENT=Fuel
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS/F8M
BY REGION NOPRINT
BY ST
BY CITY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=RED, SQUEEZE=ON, $
END
COMPOUND END

La primera página de salida es:



Ejemplo: Cómo crear diseños multipágina con la sintaxis del Compositor de documentos

En este ejemplo, que emplea el archivo máster GGSALES, los diseños multipágina permiten colocar los componentes en lugares fijos en páginas diferentes. Para este ejemplo, el informe de diseño compuesto coordinado, puede contener informes de componente R1 y R2 para cada valor del primer campo de clasificación, en las páginas impares (parte frontal), y R3, en las páginas pares (parte inversa). Además, puede colocar el mismo encabezado, junto con un logo y un texto, con el valor insertado del primer campo de clasificación, en la parte superior de cada lado.

Cree un procedimiento (HEADER.FEX) e introduzca la sintaxis siguiente para un informe de encabezado:

TABLE FILE GGSALES
" "
"Report package for <REGION"
BY REGION NOPRINT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SIZE=20, $
TYPE=REPORT, IMAGE=poweredbyibi.gif, POSITION=(+.25 +.25), $
TYPE=HEADING, LINE=2, ITEM=1, POSITION=4, $
END

Utilizaremos los componentes R1 y R2 del ejemplo anterior. Si no la hecho todavía, guárdelos como REPORT1.FEX y REPORT2.FEX. Introduzca la sintaxis siguiente como componente R3, mediante la creación de un procedimiento llamado REPORT3.FEX.

TABLE FILE GGSALES
"Report R3 for <REGION"
BY REGION NOPRINT
SUM DOLLARS BY ST
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=GREEN, $
END

Desde la pestaña Editor de texto del Compositor de documentos, introduzca la sintaxis siguiente, indicando que los componentes de informe R1 y R2 aparezcan en la página 1. El componente R3 aparece en la página 2, mientras que el encabezado del informe aparece en todas las páginas del documento.

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=ALL, $
COMPONENT=HEADER, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
PAGELAYOUT=1, $
COMPONENT=R1, TYPE=REPORT, POSITION=(1 3), DIMENSION=(4 4), $
COMPONENT=R2, TYPE=REPORT, POSITION=(6 3), DIMENSION=(4 4), $
PAGELAYOUT=2, $
COMPONENT=R3, TYPE=REPORT, POSITION=(4 3), DIMENSION=(4 4), $
END
SET COMPONENT=HEADER
EX HEADER
SET COMPONENT=R1
EX REPORT1
SET COMPONENT=R2
EX REPORT2
SET COMPONENT=R3
EX REPORT3
COMPOUND END

Página 1 de la salida:

Página 2 de la salida:



Ejemplo: Cómo crear desbordamiento de página con la sintaxis del Compositor de documentos

Un tipo de informe común contiene un diseño fijo en la parte superior de la página, seguido de un informe con registros detallados de longitud variable. Por ejemplo, un resumen de cartera de valores puede contener el nombre y dirección de un cliente, un gráfico de asignación de valores y una comparativa de la cartera con índices bursátiles en la parte superior, seguida de una lista de los títulos mantenidos en la cuenta. En el caso de que la lista de títulos se desborde en la primera página, nos gustaría que la lista continuase en la segunda, debajo del encabezado común que aparece en todas las páginas (logo, número de cuenta, número de página). La sintaxis de OVERFLOW-POSITION y OVERFLOW-DIMENSION nos permite especificar dónde continúa el informe en la páginas de desbordamiento y cuál debe ser su longitud en cada una. (Tenga en cuenta que el ancho no debe variar de una página a otra.)

El ejemplo siguiente, que emplea el archivo máster GGSALES, demuestra cómo se puede usar OVERFLOW-POSITION y OVERFLOW-DIMENSION para volver a colocar el segundo componente de informe (R2), para que empiece debajo del primer componente de la página inicial y dos pulgadas por debajo de la parte superior de las páginas posteriores. Observe que esto deja espacio suficiente para el componente de encabezado (HEADER) del informe, al principio de cada página.

Además, PAGELAYOUT=ALL obliga al componente HEADER a aparecer en la parte superior de cada página de desbordamiento.

Introduzca la sintaxis siguiente en la pestaña Editor de texto del Compositor de documentos.

SET PAGE-NUM=OFF
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=Example, LAYOUT=ON, MERGE=OFF, $
 PAGELAYOUT=1, $
    COMPONENT=R1, TYPE=REPORT, POSITION=(1.5 2), DIMENSION=(8 3), $
    COMPONENT=R2, TYPE=REPORT, POSITION=(.5 5), DIMENSION=(8 5),
        OVERFLOW-POSITION=(.5 2), OVERFLOW-DIMENSION=(8 8.5), $
  PAGELAYOUT=ALL, $    
    COMPONENT=HEADER, TYPE=REPORT, POSITION=(1.25 1), DIMENSION=(6 1), $
END
SET COMPONENT=R1
TABLE FILE GGSALES
HEADING CENTER
"Report 1"
"Sales Summary by Category"
" "
SUM UNITS BUDUNITS DOLLARS BUDDOLLARS BY CATEGORY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SQUEEZE=ON, $
END
SET COMPONENT=R2
TABLE FILE GGSALES
HEADING CENTER
"Report 2"
"Sales Detail Report"
" "
SUM UNITS BUDUNITS DOLLARS BUDDOLLARS
BY CATEGORY BY PRODUCT BY REGION
ON CATEGORY UNDER-LINE
ON PRODUCT SUB-TOTAL
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SQUEEZE=ON, $
END
SET COMPONENT=HEADER 
TABLE FILE GGSALES
HEADING
"Gotham Grinds sales to Information Builders, October 1997"
BY CATEGORY NOPRINT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, IMAGE=gotham.gif, POSITION=(3.25 .25), DIMENSION=(2 .75), $
END

La primera página de salida es:

La segunda página de salida es:



x
Sintaxis: Cómo Dibujar objetos con la sintaxis del Compositor de documentos.

Puede dibujar una variedad de objetos sobre la página para mejorar un informe. Entre los objetos admitidos actualmente se encuentran las líneas, cuadros, cadenas de texto estáticas e imágenes.

La sintaxis empleada para dibujar estos objetos puede aparecer en la hoja de estilos de un informe, aunque también puede estar incluida dentro de en un agrupamiento PAGELAYOUT, en las declaraciones COMPOUND LAYOUT. La sintaxis de cada objeto de dibujo está descrita más abajo.



Ejemplo: Cómo dibujar objetos con la sintaxis del Compositor de documentos

El ejemplo siguiente muestra cómo colocar los objetos de dibujo dentro la sintaxis COMPOUND LAYOUT, mediante el archivo máster GGSALES. Observe que un objeto de dibujo, como un COMPONENT, aparece en la página, a continuación de la declaración PAGELAYOUT.

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=Sales, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
COMPONENT=Budget, TYPE=REPORT, POSITION=(6.25 1), DIMENSION=(4 4), $ 
OBJECT=IMAGE, IMAGE=gglogo.gif, POSITION=(1 4.5), DIMENSION=(1 1), $ 
OBJECT=BOX, POSITION=(1 1), DIMENSION=(5 3), BACKCOLOR=GOLDENROD, $
END
SET COMPONENT=Sales
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS
BY REGION NOPRINT
BY CATEGORY 
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, STYLE=BOLD, $
END
SET COMPONENT=Budget
TABLE FILE GGSALES
"Budget report for <REGION"
" "
SUM BUDDOLLARS
BY REGION NOPRINT
BY CATEGORY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=BLUE, $
END
COMPOUND END

La primera página de salida es:

Nota: No se trazará un objeto de dibujo a menos que haya un COMPONENT como mínimo en su PAGELAYOUT.



x
Sintaxis: Cómo Mostrar cuadrículas con la sintaxis del Compositor de estilos

Puede usar el comando SET LAYOUTGRID como ayuda para desarrollar diseños de informes manualmente. La visualización de cuadrículas superpone una ligera cuadrícula de 1x1 pulgadas sobre la página para verificar la posición de los distintos componentes de informe. Actualmente, la cuadrícula sólo funciona en pulgadas.

Para mostrar cuadrículas, introduzca la siguiente sintaxis:

SET LAYOUTGRID=ON


x
Referencia: Etiquetas de marcado de formatos de texto para un objeto de texto

Nota: Si su texto contiene cualquier carácter de intercalación abierto (<), debe añadir un espacio después de cada signo de intercalación abierto del texto. De lo contrario, todo lo que venga después del signo de intercalación abierto se interpretará como el inicio de una etiqueta de marcado y no aparecerá como texto.

Propiedades de fuente

La etiqueta de marcado admite tres atributos: nombre, tamaño y color (el color debe especificarse como un código numérico hexadecimal):

<font face="font" size=[+|-]n color=color_code>text</font>

Por ejemplo:

<font face="New Century Schoolbook">Test1</font>
<font face="Times" size=12>test2</font>
<font face="Times New Roman" color=#0000FF size=+4>Test3</font> 
<font size=-2 face="Times New Roman" color=#0000FF >Test4</font>

Estilos de texto

Los estilos de texto admitidos son negrita, cursiva, subrayado y superíndice.

Negrita: <b>text</b>

Cursiva: <i>text</i>

Subrayado: <u>text</u>

Superíndice: <sup>text</sup>

Saltos de línea

La etiqueta de salto de línea posterior a una porción de texto comienza la próxima porción de texto en una línea nueva. Tenga en cuenta que los saltos de línea no disponen de etiqueta de cierre:

<br>

Alineación de texto

Las opciones de alineación afectan tanto al texto ajustado como a los saltos de línea especificados. Tanto la justificación horizontal como la alineación vertical son compatibles.

Lista desordenada (puntos)

La etiqueta de lista desordenada (ul) encierra una lista de puntos (puntos). Cada elemento se encuentra encerrado en una etiqueta de elemento de lista (li). Las etiquetas de inicio y cierre de la lista deben estar en su propia línea. Cada elemento de lista debe comenzar en una línea nueva:

<ul>
<li>list item1</li>
<li>list item2</li>
  .
  .
  .
</ul>

El tipo de punto predefinido es el disco. También puede especificar un círculo o un cuadrado:

<ul type=disc>
<ul type=circle>
<ul type=square>

Lista ordenada (número o letra)

La etiqueta de lista ordenada (ol) encierra una lista en la que cada elemento tiene un número o letra consecutivo. Cada elemento se encuentra encerrado en una etiqueta de elemento de lista (li). Las etiquetas de inicio y cierre de la lista deben estar en su propia línea. Cada elemento de lista debe comenzar en una línea nueva:

<ol>
<li>list item1</li>
<li>list item2</li>
  .
  .
  .
</ol>

Se utilizan números arábigos (tipo=1) por defecto para ordenar la lista. Puede especificar los siguientes tipos de orden:

Números arábigos (por defecto): <ol type=1>

Letras minúsculas: <ol type=a>

Letras mayúsculas: <ol type=A>

Números romanos en minúscula: <ol type=I>

Números romanos en mayúscula: <ol type=I>

Hipervínculos

Puede incluir hipervínculos en el formato de texto de documentos PDF.

La sintaxis de la etiqueta de formato del delimitador es un subconjunto de la sintaxis de delimitadores HTML:

<a href="hyperlink">Text to display</a>

donde:

hyperlink

Es el hipervínculo al que nos dirigimos al pulsar el texto.

Text to display

El texto mostrado para el hipervínculo.

Por ejemplo:

<a href="http://www.example.com/help.htm">Click here for help</a>

La etiqueta de formato del delimitador no es compatible con ningún otro atributo.

Numeración de páginas y fechas

Existen dos etiquetas pseudo-HTML para insertar números de páginas en el texto de una página principal de un informe de diseño compuesto coordinado:

Número de página actual: <ibi-page-number/>

Número total de páginas: <ibi-total-pages/>

Observe que, cuando MARKUP=ON, el espacio se asigna al mayor número de páginas posibles, así que puede existir un espacio considerable entre el número de página y el texto posterior. Para eliminar el espacio adicional del objeto de texto con las etiquetas de numeración de páginas:

Para mostrar una fecha en la salida del informe, inserte una variable de fecha WebFOCUS en un objeto de texto situado en una página principal (por ejemplo, &DATEtrMDYY).



Ejemplo: Cómo dar formato a un objeto de texto de diseño compuesto con etiquetas de marcado

La siguiente solicitud muestra un objeto de texto con etiquetas de marcado, en un archivo de salida PDF.

Nota: La sintaxis de formato de texto no puede contener caracteres de retorno de carro o avance de línea. A fin de presentar el ejemplo en este documento, se han añadido caracteres de avance de línea para que el código de ejemplo se ajuste y encaje en la página mostrada. Para ejecutar este ejemplo en su entorno, copie el código en un editor de texto y borre cualquier carácter de avance de línea que aparezca en el objeto de formato de texto, yendo al final de cada línea y pulsando Borrar. En algunos casos puede que tenga que añadir un espacio para mantener la estructura de la cadena. Para más información sobre cómo mostrar retornos de carro en el objeto de texto, consulte Etiquetas de marcado de formatos de texto para un objeto de texto.

SET PAGE-NUM=OFF
SET LAYOUTGRID=ON
TABLE FILE GGSALES
BY REGION NOPRINT
ON TABLE PCHOLD AS LINESP1 FORMAT PDF
ON TABLE SET STYLE *
type=report, size=8, $
object=string, position=(1 1), dimension=(7 3), wrap=on, markup=on,
 linespacing=multiple(3), 
 text='<b><font face="Arial" size=12>This paragraph is triple-spaced
 (LINESPACING=MULTIPLE(3)):</font></b>
 <full>Our <i>primary</I> goal for fiscal 2006 was to accelerate our
 transformation to customer centricity. In this letter, I’d like to
 give you an update on this work, which contributed to the 22-percent
 increase in earnings from continuing operations we garnered for fiscal
 2006. Since the past is often prologue to the future, I’d like to
 describe how customer centricity is influencing not only our goals for
 fiscal 2007, but also our long-term plans. At Gotham Grinds, customer
 centricity means treating each customer as a unique individual, meeting
 their needs with end-to-end solutions, and engaging and energizing our
 employees to serve them.</full>', $
ENDSTYLE
END

En esta solicitud:

La salida es:



Ejemplo: Cómo dibujar objetos de texto y líneas en una página modelo

La siguiente solicitud coloca una línea en la página modelo, entre el informe de encabezado y los informes de componentes; además, coloca otra línea y una cadena de texto en la parte inferior de cada página:

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=ALL, $
COMPONENT=HEADER, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
OBJECT=STRING, POSITION=(1 6.6), MARKUP=ON,
TEXT='<font face="Arial" color=#0000FF size=12> Page <ibi-page-number/>
        </font> ', WRAP=ON, DIMENSION=(4 4),$
OBJECT=LINE, POSITION=(1 2.5), ENDPOINT=(9.5 2.5),
        BORDER-COLOR=BLUE,$
OBJECT=LINE, POSITION=(1 6.5), ENDPOINT=(9.5 6.5),
        BORDER-COLOR=BLUE,$
PAGELAYOUT=1, $
COMPONENT=R1, TYPE=REPORT, POSITION=(1 3), DIMENSION=(4 4), $
COMPONENT=R2, TYPE=REPORT, POSITION=(6 3), DIMENSION=(4 4), $
PAGELAYOUT=2, $
COMPONENT=R3, TYPE=REPORT, POSITION=(4 3), DIMENSION=(4 4), $
END
SET COMPONENT=HEADER
TABLE FILE GGSALES
" "
"Report package for <REGION"
BY REGION NOPRINT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SIZE=20, $
TYPE=REPORT, IMAGE=gglogo.gif, POSITION=(+.25 +.25), $
TYPE=HEADING, LINE=2, ITEM=1, POSITION=1.5, $
END
SET COMPONENT=R1
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS/F8M
BY REGION NOPRINT
BY ST
BY CITY
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=RED, SQUEEZE=ON, $
END
SET COMPONENT=R2
TABLE FILE GGSALES
"Number of unit sales per product for <REGION"
" "
SUM CNT.UNITS AS 'Number of units sold'
BY REGION NOPRINT
BY PRODUCT
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=BLUE, SQUEEZE=ON, $
END
SET COMPONENT=R3
TABLE FILE GGSALES
"Report R3 for <REGION"
BY REGION NOPRINT
SUM DOLLARS BY ST
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=GREEN, $
END
COMPOUND END

La primera página de salida es:

La segunda página de la salida presenta los mismos objetos de dibujo:



Ejemplo: Alineación vertical del formato de texto en salida de informes PDF

La siguiente solicitud crea tres cuadros y coloca un objeto de cadena de texto dentro de cada uno:

Nota: La sintaxis de formato de texto no puede contener caracteres de retorno de carro o avance de línea. A fin de presentar el ejemplo en este documento, se han añadido caracteres de avance de línea para que el código de ejemplo se ajuste y encaje en la página mostrada. Para ejecutar este ejemplo en su entorno, copie el código en un editor de texto y borre cualquier carácter de avance de línea que aparezca en el objeto de formato de texto, yendo al final de cada línea y pulsando Borrar. En algunos casos puede que tenga que añadir un espacio para mantener la estructura de la cadena. Para más información sobre cómo mostrar retornos de carro en el objeto de texto, consulte Etiquetas de marcado de formatos de texto para un objeto de texto.

SET PAGE-NUM=OFF
TABLE FILE GGSALES
BY REGION NOPRINT
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET STYLE *
type=report, font=arial, size=10, $
object=box, position=(1 1), dimension=(6 1), $
object=line, position=(3 1), endpoint=(3 2), $
object=line, position=(5 1), endpoint=(5 2), $ 
object=string, text='<top>Vertically aligned text within a text object using top alignment.</top>', position=(1.05 1), dimension=(2 1), linespacing=exact(.15), markup=on, wrap=on, $
object=string, text='<mid>Vertically aligned text within a text object using middle alignment.</mid>', position=(3.05 1), dimension=(2 1), linespacing=exact(.15), markup=on, wrap=on, $
object=string, text='<bottom>Vertically aligned text within a text object using bottom alignment.</bottom>', position=(5.05 .9), dimension=(2 1),linespacing=exact(.15), markup=on, wrap=on, $ 
END

La salida es:



x
Referencia: Informes de diseño compuesto coordinado, con datos no disponibles

El informe de diseño compuesto coordinado, consiste de informes o gráficos de componentes individuales con un primer campo de clasificación común. El procedimiento compuesto genera un documento de salida con una página (o conjunto de páginas) independiente para cada valor individual del campo de clasificación, con los componentes insertados, segmentados para mostrar los datos correspondientes al valor del campo de clasificación.

Se genera una página de informe de diseño compuesto coordinado, en el diseño de página asignado, para cada valor de campo de clasificación situado en al menos uno de los informes de componente, mostrando los datos correspondientes a esos componentes, siempre que existan datos para ese valor. Si no existen datos, aparece un informe de componente vacío.

La representación del componente vacío en el informe depende de cómo esté definida la posición del componente en el informe de diseño compuesto coordinado. Los componentes pueden estar definidos con una posición absoluta o relativa respecto a otros componentes del diseño. Si el componente vacío y los componentes posteriores de la página están definidos con una posición absoluta, el informe de componente vacío aparece como un espacio en blanco en la ubicación asignada. Si se ha definido una posición relativa entre el componente vacío y los componentes posteriores, éstos flotarán sobre la página y no aparecerá ningún espacio en blanco en el área definida para el componente vacío.

En los informes compuestos con un posicionamiento relativo definido entre informes, cuando aparezca un informe en blanco, el informe posterior quedará posicionado de forma vertical, en relación a la parte inferior del último informe que no esté vacío, y en horizontal con respecto al margen de la página. Es decir, cuando un informe no contiene datos, el informe posterior flotará (en vertical) y empezará de forma relativa al informe anterior, pero no podrá desplazarse horizontalmente sobre la página, con respecto a ninguno de los informes anteriores.

Cuando se utiliza POSITION = (X,Y), las coordenadas izquierda (X = horizontal) y superior (Y = vertical) determinan la colocación de un informe. Cada coordenada puede definirse de forma independiente, en relación al informe anterior o en una posición fija sobre la página.

Si desea definir el posicionamiento para que el informe flote sobre la página, reemplazando al informe vacío, pero se mantenga anclado en la parte izquierda de la página, puede establecer la coordinada Y (superior) como relativa y anclar la X (izquierda). Para anclar una de las coordenadas de posición, cambie la referencia de una posición relativa (+/-) a una absoluta. Por ejemplo:

Las dos coordenadas relativas: POSITION(+0.003 +0.621)

Anclar horizontal / flotar vertical: POSITION( 0.520 +0.621)

No es necesario cambiar ni añadir sintaxis de WebFOCUS a su solicitud para poder aprovechar esta característica. Sin embargo, preste atención a la selección y relación de los datos de sus componentes coordinados para generar la salida deseada.



Ejemplo: Configuración: Cómo crear un informe compuesto coordinado con datos no disponibles

En este ejemplo, vamos a crear un conjunto de declaraciones informando sobre los pedidos pendientes de inventario de un grupo determinado de establecimientos. Cada tienda puede tener pedidos incompletos en cualquiera de estas tres categorías de inventario: Alimentos, Café o Regalos.

Para demostrar cómo funciona, primero vamos a construir un conjunto de archivos de datos: un archivo de encabezado, con la información de contacto para el conjunto de establecimientos seleccionado, y archivos de transacción, para cada categoría de inventario. Hemos seleccionado datos específicos para mostrar cómo funciona esto cuando algunos de los informes de componente están vacíos.

Tras crear los archivos de datos, procedemos a construir cuatro informes de componente, uno para mostrar la información del encabezado, y el resto, para cada categoría de inventario.

Finalmente, los integramos en un informe de diseño compuesto coordinado, que muestra toda esta información en un extracto de una sola página para cada tienda



Ejemplo: Paso 1: Crear los archivos de datos

Los cuatro archivos de datos siguientes van a crearse a partir de un join entre los orígenes de datos GGORDER y GGSALES.

Archivo de datos creado

Tipo de información incluida

Tiendas incluidas

GGHDR

Información de tienda

R1019, R1020, R1040, R1041

GG1

Transacciones de pedidos de café

R1019, R1040, R1088

GG2

Transacciones de pedidos de alimentos

R1019, R1020, R1041, R1088

GG3

Transacciones de pedidos de regalos

R1019, R1020, R1040, R1088

Los comandos APP HOLD, JOIN y DEFINE son:

APP HOLD baseapp
JOIN
 GGORDER.ORDER01.STORE_CODE IN GGORDER TO
   UNIQUE GGSTORES.STORES01.STORE_CODE
   IN GGSTORES AS J1
END
DEFINE FILE GGORDER
PRODUCT_CATEGORY/A15=IF (PRODUCT_DESCRIPTION IN
                     ('Biscotti','Croissant','Scone')) THEN 'Food'
                     ELSE IF (PRODUCT_DESCRIPTION IN
                     ('French Roast','Hazelnut','Kona')) THEN 'Coffee' ELSE 'Gifts';
END

El siguiente procedimiento genera el origen de datos GGHDR:

TABLE FILE GGORDER
SUM
     FST.STORE_NAME
     FST.ADDRESS1
     FST.ADDRESS2
     FST.CITY
     FST.STATE
     FST.ZIP
BY STORE_CODE
WHERE STORE_CODE IN ('R1019','R1020','R1040','R1041');
ON TABLE NOTOTAL
ON TABLE HOLD AS GGHDR FORMAT FOCUS INDEX 'STORE_CODE'
END

El siguiente procedimiento genera el origen de datos GG1:

TABLE FILE GGORDER
PRINT
     QUANTITY
     UNIT_PRICE
     PACKAGE_TYPE
     SIZE
     VENDOR_NAME
     PRODUCT_CATEGORY
BY STORE_CODE
BY ORDER_DATE
BY PRODUCT_DESCRIPTION
WHERE ( PRODUCT_CATEGORY EQ 'Coffee' ) AND ( ORDER_DATE GE '09/01/97' );
WHERE STORE_CODE IN ('R1019','R1040','R1088');
ON TABLE HOLD AS GG1 FORMAT FOCUS INDEX 'STORE_CODE'
END

El siguiente procedimiento genera el origen de datos GG2:

TABLE FILE GGORDER
PRINT
     QUANTITY
     UNIT_PRICE
     PACKAGE_TYPE
     SIZE
     VENDOR_NAME
     PRODUCT_CATEGORY
BY STORE_CODE
BY ORDER_DATE
BY PRODUCT_DESCRIPTION
WHERE ( PRODUCT_CATEGORY EQ 'Food' ) AND ( ORDER_DATE GE '09/01/97' );
WHERE STORE_CODE IN ('R1019','R1020','R1041','R1088');
ON TABLE HOLD AS GG2 FORMAT FOCUS INDEX 'STORE_CODE'
END

El siguiente procedimiento genera el origen de datos GG3:

TABLE FILE GGORDER
PRINT
     QUANTITY
     UNIT_PRICE
     PACKAGE_TYPE
     SIZE
     VENDOR_NAME
     PRODUCT_CATEGORY
BY STORE_CODE
BY ORDER_DATE
BY PRODUCT_DESCRIPTION
WHERE ( PRODUCT_CATEGORY EQ 'Gifts' ) AND ( ORDER_DATE GE '09/01/97' );
WHERE STORE_CODE IN ('R1019','R1020','R1040','R1088');
ON TABLE HOLD AS GG3 FORMAT FOCUS INDEX 'STORE_CODE'
END


Ejemplo: Paso 2: Crear los informes de componente

El procedimiento siguiente, GGHDR.FEX, genera el primer componente de informe para el informe de diseño compuesto coordinado, a partir del origen de datos GGHDR. Éste actuará como el encabezado de cada página del informe de diseño compuesto. El campo de clasificación compartido por todos los componentes de informe es STORE_CODE. Este procedimiento lista el nombre y dirección de una tienda en cada página del archivo de salida PDF:

TABLE FILE GGHDR
BY STORE_CODE NOPRINT
HEADING
"<STORE_NAME "
"<ADDRESS1 "
"<ADDRESS2 "
"<CITY , <STATE   <ZIP "
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
     COLOR=BLUE,$
ENDSTYLE
END

El siguiente procedimiento, GGRPT1.FEX, genera el segundo componente de informe para el informe de diseño compuesto coordinado. Muestra datos del origen de datos GG1 con información sobre la categoría de producto Café para el mismo valor de código de tienda del informe de encabezado:

TABLE FILE GG1
SUM
     QUANTITY
     UNIT_PRICE
     FST.PACKAGE_TYPE AS ',Package'
     FST.SIZE AS ',Size'
     VENDOR_NAME
BY STORE_CODE AS 'Store'
BY PRODUCT_DESCRIPTION
HEADING
"<PRODUCT_CATEGORY"
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=DATA,
     SIZE=10,$
TYPE=TITLE,
     STYLE=BOLD,
     SIZE=10,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
    COLOR=RED,$
ENDSTYLE
END

El siguiente procedimiento, GGRPT2.FEX, genera el tercer componente de informe para el informe de diseño compuesto coordinado. Muestra datos del origen de datos GG2 con información sobre la categoría de producto Alimentos para el mismo valor de código de tienda del informe de encabezado:

TABLE FILE GG2
SUM
     QUANTITY
     UNIT_PRICE
     FST.PACKAGE_TYPE AS ',Package'
     FST.SIZE AS ',Size'
     VENDOR_NAME
BY STORE_CODE
BY PRODUCT_DESCRIPTION
HEADING
"<PRODUCT_CATEGORY"
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=DATA,
    SIZE=10,$
TYPE=TITLE,
     STYLE=BOLD,
     SIZE=10,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
     COLOR=RED,$
ENDSTYLE
END

El siguiente procedimiento, GGRPT3.FEX, genera el último componente de informe para el informe de diseño compuesto coordinado. Muestra datos del origen de datos GG3 con información sobre la categoría de producto Regalos para el mismo valor de código de tienda del informe de encabezado:

TABLE FILE GG3
SUM
     QUANTITY
     UNIT_PRICE
     FST.PACKAGE_TYPE AS ',Package'
     FST.SIZE AS ',Size'
     VENDOR_NAME
BY STORE_CODE
BY PRODUCT_DESCRIPTION
HEADING
"<PRODUCT_CATEGORY"
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=DATA,
     SIZE=10,$
TYPE=TITLE,
     STYLE=BOLD,
     SIZE=10,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
     COLOR=RED,$
ENDSTYLE
END


Ejemplo: Paso 3: Construir el informe de diseño compuesto coordinado

El siguiente procedimiento, GGCMPD.FEX, combina los cuatro componentes en un informe de diseño compuesto coordinado. Los informes y el posicionamiento relativo de cada página aparecen en el diagrama siguiente:

La sintaxis del diseño compuesto coordinado es:

SET HTMLARCHIVE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
UNITS=IN, $
SECTION=section1, LAYOUT=ON, MERGE=ON, ORIENTATION=PORTRAIT,
   PAGESIZE=Letter,  $
PAGELAYOUT=1, NAME='Page layout 1', text='Page layout 1',
   TOC-LEVEL=1, BOTTOMMARGIN=0.5, TOPMARGIN=0.5,  $
COMPONENT='report1', TEXT='report1', TOC-LEVEL=2,
   POSITION=(0.667 1.083), DIMENSION=(3.417 1.412),  $
COMPONENT='report2', TEXT='report2', TOC-LEVEL=2,
   POSITION=(0.837 2.584), DIMENSION=(* *),  $
COMPONENT='report3', TEXT='report3', TOC-LEVEL=2,
   POSITION=(-0.006 +0.084), DIMENSION=(* *),
   RELATIVE-TO='report2', RELATIVE-POINT=BOTTOM-LEFT,
   POSITION-POINT=TOP-LEFT, $
COMPONENT='report4', TEXT='report4', TOC-LEVEL=2,
   POSITION=(+0.010 +0.080), DIMENSION=(* *),
   RELATIVE-TO='report3', RELATIVE-POINT=BOTTOM-LEFT,
   POSITION-POINT=TOP-LEFT, $
END
SET COMPONENT='report1'
-INCLUDE GGHDR.FEX
SET COMPONENT='report2'
-INCLUDE GGRPT1.FEX
SET COMPONENT='report3'
-INCLUDE GGRPT2.FEX
SET COMPONENT='report4'
-INCLUDE GGRPT3.FEX
COMPOUND END

En la primera página del archivo de salida PDF, todos los componentes tienen datos y aparecen en la salida del informe:

En la segunda página, el informe GGRPT2.FEX no ha recuperado datos de ninguna tienda del encabezado. Por consiguiente, el componente Café no está disponible. Tenga en cuenta que, debido a que los componentes 3 y 4 están posicionados de forma relativa a los componentes definidos encima suya, en la sintaxis del diseño compuesto, los componentes Alimentos y Regalos se han desplazado hacia arriba, en vez de dejar un espacio en blanco en el lugar destinado al componente Café:

En la página 5, el informe de encabezado no ha recuperado datos para un valor de código de tienda presente en los otros tres componentes. Se genera una página para este código de tienda, de todas formas. Puesto que el segundo componente (informe Café) ha quedado colocado de forma absoluta en la sintaxis del diseño compuesto, y no de manera relativa al primer componente (informe de encabezado), el espacio destinado al informe de encabezado se deja en blanco:


Principio de página

x
Cómo generar una tabla de contenido con entradas de campo BY para informes de diseño compuestos PDF

En esta sección:

Cómo:

Referencia:

La sintaxis de diseño compuesto le permite generar una tabla de contenido para un informe compuesto PDF.

La tabla de contenido puede presentarse como marcadores PDF mostrados por Adobe Reader®, como una página de tabla de contenido situada al principio del documento, o de ambas formas. Las entradas de tabla de contenido y los marcadores presentan vínculos a cada componente y campo de clasificación incluido. Estos vínculos colocan el lector sobre la página en que se encuentra el vínculo de la tabla de contenido.

Puede incluir cualquier componente de informe o gráfico en un nivel determinado de la tabla de contenido, mediante la definición de una descripción y un nivel de tabla de contenido en la sintaxis de diseño compuesto del componente. Además, los valores de campos BY de cualquiera de los componentes de informe pueden presentarse en el árbol TOC (tabla de contenidos en sus siglas en inglés), con una sangría de un nivel en la entrada del informe de componentes. Las entradas BYTOC sólo son compatibles con componentes de informe (no con componentes de gráfico).

Los informes compuestos PDF que definen la página de tabla de contenidos o marcadores en base a entradas del campo BY, son compatibles con informes coordinados MERGE=ON y no coordinados MERGE=OFF. En los informes coordinados, la clave de clasificación principal aparece como la entrada de nivel superior para cada copia del informe, mientras que las claves posteriores aparecen en los componentes correspondientes del árbol. Estos informes coordinados también pueden dividirse en documentos independientes, por medio de la clave de clasificación principal, y distribuirse con ReportCaster.



x
Características de la tabla de contenido

La página Tabla de contenido (TOC) muestra un resumen del contenido del documento, con los números de página, y puede imprimirse con el mismo. Las entradas de la tabla de contenido permiten navegar fácilmente a una sección determinada mientras se consulta el documento. Las entradas pueden estar vinculadas a cualquier componente de la salida compuesta (página, informe o gráfico), objeto perteneciente al informe compuesto o valor de campo de clasificación vertical (valores de campo BY) de cada informe de componente.

El contenido real de la tabla de contenido aparece representado como un elemento de texto en la sintaxis de diseño compuesto. Durante el uso de una página de tabla de contenido, puede:

Nota: Si la tabla de contenido sobrepasa la página a la hora de ejecutarse, el contenido restante se ejecuta con el mismo tamaño y dimensiones que los de la primera página, hasta que se haya generado salida para toda la tabla de contenido.



x
Sintaxis: Cómo Generar una tabla de contenido en un informe de diseño compuesto PDF

Puede generar marcadores, una página de tabla de contenido, o ambos, incluyendo los objetos BOOKMARKS o TOC en la sintaxis del diseño compuesto. A continuación, en las definiciones de componentes, especifique el nivel y descripción de la tabla de contenido y, opcionalmente, los niveles de BYTOC.

Atributos TOC

COMPOUND LAYOUT PCHOLD FORMAT PDF
[OBJECT=BOOKMARKS, $]
[OBJECT=TOC, NAME='text1', 
   TEXT='<font face="font1" size=sz1>Table of Contents</font>',
   MARKUP=ON, TOC-NUMBERING={OFF|ON}, POSITION=(xy), [TOC-FILL=DOTS,]
   DIMENSION=(mn),
   font='font2', color={color|RGB(rgb)}, size=sz2, 
   METADATA=' TOCTITLE: Table of Contents', $]

donde:

OBJECT=BOOKMARKS
Genera marcadores PDF para las entradas de tabla de contenido especificadas en las declaraciones COMPONENT.
OBJECT=TOC
Genera una página de contenido para las entradas de tabla de contenido especificadas en las declaraciones COMPONENT.
NAME='text1'
Especifica un nombre para el elemento de página de tabla de contenido.
TEXT='<font face="font1" size=sz1>Table of Contents</font>'
Especifica el título y las características del texto de título de la tabla de contenido. Para que esta información se interprete correctamente, el atributo MARKUP=ON debe estar especificado. El texto no quedará ajustado y debe caber dentro de los márgenes del elemento de texto general.
MARKUP=ON
Hacer que las etiquetas de marcado usadas en el título de la tabla de contenido se interpreten como opciones de formato; no como texto.
TOC-NUMBERING={OFF|ON}
Determina si las entradas de la página de tabla de contenido aparecen numeradas. ON es el valor predeterminado.
POSITION=(xy)
Define las coordenadas x e y del objeto sobre la página.
DIMENSION=(ab)
Define el tamaño del cuadro de límite del objeto.
font='font2', color={color|RGB(rgb)}, size=sz2,
Especifica las características del texto del cuerpo de la tabla de contenido. Si está omitido, los atributos se toman del atributo TEXT.
TOC-FILL=DOTS
Especifica los puntos de relleno entre la entrada y el número de página. Si este atributo no está incluido, la entrada y el número de página aparecen separados por un espacio en blanco.

Entradas de componentes

COMPONENT=component1, TITLE='title1', TOC-LEVEL=n, [BYTOC=m,] 
   POSITION=(xy),DIMENSION=(ab), $

donde:

component1
Componente que va a incluirse en la tabla de contenido.
title1
Título del componente utilizado como entrada TOC.
TOC-LEVEL=n
Define n como el nivel de tabla de contenido del objeto de informe, gráfico o diseño de página. Esta opción determina el orden jerárquico de los objetos dentro de la tabla de contenido.

0 = el objeto no aparece en la tabla de contenido.

1 = el objeto aparece como un elemento de primer nivel en la página de contenido.

2 = el objeto aparece como un elemento de segundo nivel en la página de contenido.

BYTOC=m
Especifica el número de campos BY incluido en la entrada de componente actual (m).
POSITION=(xy)
Define las coordenadas x e y del objeto sobre la página.
DIMENSION=(ab)
Define el tamaño del cuadro de límite del objeto.


x
Referencia: Notas de uso de la tabla de contenido

Apuntes principales

Apuntes sobre BYTOC



Ejemplo: Cómo crear marcadores y una página de tabla de contenido

El ejemplo siguiente tiene dos informes de componente. Se generan marcadores PDF y una página de tabla de contenido. Cada componente se encuentra en el nivel 1 de TOC y presenta dos niveles de campos BY, situados bajo las entradas del nivel 1:

COMPOUND LAYOUT PCHOLD FORMAT PDF
OBJECT=BOOKMARKS, $
OBJECT=TOC, NAME='text1', 
  TEXT='<font face="ARIAL" size=10>Table of Contents</font>',
  MARKUP=ON, TOC-NUMBERING=ON, POSITION=(0.854 0.854),
  DIMENSION=(7.000 9.500), font='ARIAL', color=RGB(0 0 0),
  size=10, METADATA=' TOCTITLE: Table of Contents', $
SECTION=S1, LAYOUT=ON, MERGE=OFF, ORIENTATION=PORTRAIT, $
PAGELAYOUT=1, $
COMPONENT=report1, TEXT='Sales By Product', TOC-LEVEL=1, BYTOC=2,
  POSITION=(1 1), DIMENSION=(* *), $
COMPONENT=report2, TEXT='Sales By Region', TOC-LEVEL=1, BYTOC=2,
  POSITION=(+0.00 +0.519), DIMENSION=(* *), RELATIVE-TO='report1',
  RELATIVE-POINT=BOTTOM-LEFT, POSITION-POINT=TOP-LEFT, $
END
SET COMPONENT=report1
TABLE FILE GGSALES
SUM DOLLARS/F8M
BY CATEGORY 
BY PRODUCT
BY REGION 
BY ST
HEADING
"Sales by Category"
ON TABLE HOLD FORMAT PDF
END
SET COMPONENT=report2
TABLE FILE GGSALES
SUM DOLLARS/F8M
BY REGION 
BY ST
BY CATEGORY 
BY PRODUCT
HEADING
"Sales by Region"
ON TABLE HOLD FORMAT PDF
END
COMPOUND END

La salida indica que cada informe de componente está en el nivel 1 de la tabla de contenido, con dos niveles de campos de clasificación debajo. En el informe Ventas por producto, los campos BY son Categoría y Producto. En el informe Ventas por región, los campos BY son Región y Estado. Cada entrada de la tabla de contenido es un vínculo a la página que contiene el valor:

Al pulsar sobre cualquier entrada de la página de tabla de contenido o en el panel de marcadores, se abre la página que contiene esa entrada. Por ejemplo, si pulsa sobre la entrada Ventas por región/Sureste, se abre la página siguiente:


Principio de página

x
Cómo crear un informe PDF o PS compuesto

Cómo:

Los informes compuestos combinan múltiples informes en un solo archivo PDF o PS. El primer informe PDF o PS define el formato para el informe concatenado, lo que le permite intercalar informes intermedios de otros formatos en un solo informe que contenga gran cantidad de información. Con los informes compuestos puede reunir datos de diferentes orígenes de datos y combinar informes en un solo informe imperante que ejecute cada solicitud y concatene la salida en un solo archivo PDF o PS.

A continuación, puede ejecutar el informe o distribuirlo con ReportCaster, que muestra el informe PDF compuesto en Reader o envía el informe PS compuesto directamente a una impresora. Consulte la documentación de ReportCaster para obtener información detallada acerca de este producto.

Esto es compatible con los formatos con estilo, como PDF, PS, EXL2K o EXL07.

Para obtener información acerca de cómo crear informes compuestos PDF de drill through (detallado a través de los datos), vaya a Cómo crear un informe compuesto PDF con vínculos drill through. Para obtener información acerca de cómo crear informes compuestos de Excel, vaya a Cómo crear un informe compuesto de Excel.



x
Sintaxis: Cómo Mostrar informes compuestos

Para ver un informe compuesto que contenga distintos tipos de informe, emplee la sintaxis

SET COMPOUND= {OPEN|CLOSE} [NOBREAK]

o

ON TABLE SET COMPOUND {OPEN|CLOSE}

Tenga en cuenta que cuando utilice esta sintaxis debe también incluir el siguiente código para identificar el formato de visualización de cada uno de los informes que se deben concatenar:

ON TABLE {PCHOLD|HOLD|SAVE} [AS name] FORMAT formatname

Si todos los informes en el conjunto compuesto son del mismo tipo; es decir, PDF o PS, puede utilizar la siguiente sintaxis, que es más compacta

ON TABLE {PCHOLD|HOLD|SAVE} [AS name] FORMAT {PDF|PS} {OPEN|CLOSE} [NOBREAK]

donde:

name
Es el nombre del archivo generado. El nombre se toma de la primera solicitud en el informe compuesto. Si no se especifica ningún nombre en el primer informe, se utilizará el nombre HOLD.
OPEN
Se especifica con el primer informe e inicia el proceso de concatenación. Un informe que contenga el atributo OPEN debe estar en formato PDF o PS.
CLOSE
Se especifica en el último informe y finaliza el proceso de concatenación.
NOBREAK
Es una frase opcional que suprime los saltos de página. De forma predeterminada, cada informe aparece en una página individual.

Puede utilizar NOBREAK de manera selectiva para controlar los informes que se mostrarán en la misma página.

Nota:



Ejemplo: Cómo crear un informe compuesto PDF

A continuación se explica cómo combinar tres informes PDF separados en uno creando un informe compuesto. Tenga en cuenta que:

Tenga en cuenta que en este ejemplo, todos los informes han sido ajustados para formato PDF. Sin embargo, cuando crea un informe compuesto, sólo el primer informe debe estar en formato PDF o PS. Los informes posteriores pueden estar en cualquier formato con estilo. Para ver un ejemplo, consulte Cómo Insertar gráficos en un informe compuesto.

Report 1:

SET PAGE-NUM=OFF
TABLE FILE CENTORD
HEADING
"Sales Report"
" "
SUM LINEPRICE
BY PRODCAT
ON TABLE SET STYLE *
TYPE=HEADING, SIZE=18, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF OPEN NOBREAK
END

Report 2:

TABLE FILE CENTORD
HEADING
"Inventory Report"
" "
SUM QUANTITY
BY PRODCAT
ON TABLE SET STYLE *
TYPE=HEADING, SIZE=18, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF NOBREAK
END

Report 3:

TABLE FILE CENTORD
HEADING
"Cost of Goods Sold Report"
" "
SUM LINE_COGS
BY PRODCAT
ON TABLE SET STYLE *
TYPE=HEADING, SIZE=18, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF CLOSE
END

La salida se muestra como informe PDF. Dado que la sintaxis para los informes 1 y 2 contiene el comando NOBREAK, los tres informes aparecen en una sola página. (Sin NOBREAK, cada informe aparece en una página individual).



x
Sintaxis: Cómo Insertar gráficos en un informe compuesto

Puede insertar un gráfico, como un logo o un gráfico de WebFOCUS capturado como archivo GIF, en un informe compuesto. El archivo gráfico debe estar incrustado en un informe en particular, dentro del conjunto de informes compuestos.

Para guardar un gráfico como imagen gráfica, incluya la siguiente sintaxis en la solicitud:

HOLD FORMAT GIF

Para obtener información detallada acerca de cómo guardar un gráfico como archivo de imagen, vaya a Cómo crear un gráfico.

Para insertar un gráfico en un informe compuesto, debe identificar el archivo de imagen en la declaración de hoja de estilos del informe en que desee incluirlo, junto con las especificaciones de tamaño y posición, si así lo desea. Para obtener información detallada acerca de cómo insertar y posicionar gráficos en un informe, vaya a Cómo añadir una imagen a un informe.



Ejemplo: Cómo combinar formatos y gráficos de informe en un informe compuesto

Esta solicitud genera un informe compuesto desde tres tipos de informe diferentes (PDF, HTML, y EXL2K) e inserta un gráfico en cada informe. Observe que cada gráfico queda guardado como un archivo GIF en la solicitud del gráfico. A continuación, el gráfico queda identificado, se modifica su tamaño y se inserta dentro de la declaración de hoja de estilos (TYPE=REPORT, IMAGE=graphname...) del informe en que se está insertando. Las variaciones de la sintaxis SET COMPOUND= (OPEN, NOBREAK, CLOSE) combinan los tres informes en la misma página. En la siguiente solicitud se destacan las líneas clave del código.

Report 1:

SET GRMERGE = ON
GRAPH FILE SHORT
SUM PROJECTED_RETURN AS 'Return on Investment'
BY HOLDER
ACROSS CONTINENT
ON GRAPH SET LOOKGRAPH 3D_BAR
ON GRAPH SET GRAPHEDIT SERVER 
ON GRAPH HOLD AS SLSGRPH1 FORMAT GIF 
END
SET COMPOUND='OPEN NOBREAK' 
TABLE FILE SHORT
SUM PROJECTED_RETURN AS 'Return on Investment'
BY CONTINENT
BY HOLDER
HEADING
"Investment Report"
" "
ON TABLE SET STYLE *
TYPE=DATA, BACKCOLOR=( BY=B2 'SILVER' 'WHITE' ), $
TYPE=HEADING, SIZE=14, STYLE=BOLD, $ 
TYPE=REPORT, IMAGE=SLSGRPH1.gif, POSITION=(4.5 0.5), SIZE=(3.5 2.5), $ 
ENDSTYLE 
ON TABLE PCHOLD FORMAT PDF 

END

Report 2:

GRAPH FILE TRADES
SUM AMOUNT
BY CONTINENT
ON GRAPH SET LOOKGRAPH PIE
ON GRAPH SET GRAPHEDIT SERVER 
ON GRAPH HOLD AS TRDSGR1 FORMAT GIF 
END
SET COMPOUND=NOBREAK 
TABLE FILE TRADES
SUM AMOUNT AS 'Amount'
BY CONTINENT AS 'Continent'
BY REGION AS 'Region'
HEADING
"Trades Report"
" "
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
 TYPE=DATA, BACKCOLOR=( BY=B2 'SILVER' 'WHITE' ), $

TYPE=HEADING, SIZE=14, STYLE=BOLD, $ 
TYPE=REPORT, IMAGE=TRDSGR1.gif, POSITION=(4 3), SIZE=(4 2.5), $ENDSTYLE 
ON TABLE PCHOLD FORMAT HTML 
END

Report 3:

GRAPH FILE SHORT
SUM BALANCE
BY CONTINENT
ON GRAPH SET LOOKGRAPH 3D_BAR
ON GRAPH SET GRAPHEDIT SERVER
ON GRAPH SET STYLE *
TYPE=DATA, COLOR=RED,$
ENDSTYLE 
ON GRAPH HOLD AS BALGR1 FORMAT GIF 
END
 
SET COMPOUND=CLOSE 
TABLE FILE SHORT
SUM BALANCE AS 'Balance'
BY CONTINENT AS 'Continent'
BY REGION AS 'Region'
HEADING
"Balance by Region"
" "
ON TABLE SET STYLE *
 TYPE=DATA, BACKCOLOR=( BY=B2 'SILVER' 'WHITE' ), $
TYPE=HEADING, SIZE=14, STYLE=BOLD, $
 
TYPE=REPORT, IMAGE=BALGR1.gif, POSITION=(4 6), SIZE=(4 2.5), $ENDSTYLE 
ON TABLE PCHOLD FORMAT EXL2K 
END

La salida es:


Principio de página

x
Cómo crear un informe compuesto de Excel

Referencia:

Los informes compuestos Excel generan múltiples informes de hojas de cálculo mediante el formato de salida EXL2K.

La sintaxis de informes compuestos de Excel es idéntica a la sintaxis de informes compuestos de PDF. Por defecto, cada informe que compone el informe compuesto queda colocado en una nueva hoja de cálculo de Excel (similar a una página nueva en PDF). Si no se usa la palabra clave NOBREAK, el siguiente informe se sitúa a continuación del informe actual, en la misma hoja de cálculo (como si el informe se iniciase en la misma página en PDF).

La salida, enviada al cliente a través de PCHOLD o guardada en un archivo con HOLD, se genera en el formato Microsoft Web Archive. Este formato aparece como Página Web de un solo archivo, en el cuadro de diálogo Guardar como de Excel. Excel proporciona los sufijos de archivo convencionales: .mht o .mhtml. WebFOCUS utiliza el mismo sufijo .xht que usa para informes EXL2K. Dado que el resultado es siempre un solo archivo, se puede distribuir fácilmente utilizando ReportCaster.

Los componentes de un informe Excel compuesto pueden ser informes FORMULA o PIVOT (sujetos a las restricciones). No pueden ser informes de tabla de contenido (TOC, por sus siglas en inglés).

Nota: Necesita Excel 2002 (Office XP) o superior. Los informes compuestos de Excel no funcionan con versiones anteriores de Excel, pues no admiten el formato de archivo Web Archive.



x
Referencia: Directrices para utilizar las palabras clave OPEN, CLOSE y NOBREAK, también como SET COMPOUND

Como con PDF, se utilizan las palabras clave OPEN, CLOSE y NOBREAK para controlar informes Excel compuestos. Se pueden especificar con el comando HOLD o PCHOLD o con un comando SET COMPOUND independiente.

  • En el primer informe de una secuencia de informes de componente, OPEN se usa para especificar que se va a generar un informe compuesto.
  • Se utiliza CLOSE para diseñar el último informe en un informe compuesto.
  • NOBREAK especifica que el próximo informe se ubicará en la misma hoja de trabajo del informe actual. Si no se encuentra, el comportamiento predeterminado es ubicarlo junto al próximo informe en una hoja de trabajo por separado.

    NOBREAK puede aparecer con OPEN en el primer informe o sólo en un informe entre el primer y último informe. (Utilizar CLOSE no es pertinente, dado que se refiere a la colocación del próximo informe y ningún informe le sigue el último informe donde CLOSE aparece).

  • Cuando se utiliza con la sintaxis HOLD/PCHOLD, las palabras clave de informe compuesto OPEN, CLOSE y NOBREAK deben aparecer inmediatamente después de FORMAT EXL2K y antes de palabras clave adicionales, tales como FORMULA o PIVOT. Por ejemplo, puede especificar:
    • ON TABLE PCHOLD FORMAT EXL2K OPEN
    • ON TABLE HOLD AS MYHOLD FORMAT EXL2K OPEN NOBREAK
    • ON TABLE PCHOLD FORMAT EXL2K NOBREAK FORMULA
    • ON TABLE PCHOLD FORMAT EXL2K NOBREAK FORMULA
  • Al igual que con informes PDF compuestos, las palabras clave de informe compuesto se pueden especificar alternativamente utilizando SET COMPOUND:
    • SET COMPOUND = OPEN
    • SET COMPOUND = OPEN
    • SET COMPOUND = NOBREAK
    • SET COMPOUND = NOBREAK


x
Referencia: Directrices para producir informes Excel compuestos
  • Tablas de pívot y NOBREAK. Los informes de tabla de pívot pueden aparecer en informes compuestos, pero no se pueden combinar con otro informe en la misma hoja de trabajo utilizando NOBREAK.
  • Cómo nombrar las hojas de trabajo. Los nombres de pestaña de hoja de trabajo predeterminada son Sheet1, Sheet2, etcétera. Tiene la opción de especificar un nombre de pestaña de hoja de trabajo distinto al utilizar la palabra clave TITLETEXT en la hoja de estilos. Por ejemplo:
    TYPE=REPORT, TITLETEXT='Summary Report', $

    Excel limita la longitud de títulos de hoja de estilos a 31 caracteres. No se pueden utilizar los caracteres especiales a continuación: ':', '?', '*' y '/'.

  • Nombres de archivo y formatos. El nombre del archivo de resultado (nombre AS o HOLD Por defecto) se obtiene desde el primer informe del informe compuesto (el informe con la palabra clave OPEN). Se ignoran los nombres del archivo de resultado en informes siguientes.

    Sin importar su formato, se aplica la sintaxis HOLD FORMAT utilizada en el primer componente de informe en un informe compuesto a informes siguientes en el informe compuesto.

  • Comportamiento NOBREAK. Cuando se especifica NOBREAK, el informe siguiente aparece en la fila que sigue inmediatamente a la última fila del informe con el NOBREAK. Si se necesita espacio adicional entre los informes, se puede colocar un FOOTING o un ON TABLE SUBFOOT en el informe con el NOBREAK, o se puede colocar un HEADING o un ON TABLE SUBHEAD en el informe siguiente. Esto permite la mayor flexibilidad, dado que si se añadieran filas en blanco Por defecto no habría manera de eliminarlas.


Ejemplo: Cómo crear un informe compuesto sencillo utilizando EXL2K
SET PAGE-NUM=OFF
TABLE FILE CAR
HEADING
"Sales Report"
" "
SUM SALES
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Sales Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS EX1 FORMAT EXL2K OPEN
END
TABLE FILE CAR
HEADING
"Inventory Report"
" "
SUM RC
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Inv. Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD FORMAT EXL2K
END
TABLE FILE CAR
HEADING
"Cost of Goods Sold Report"
" "
SUM DC
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Cost Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD FORMAT EXL2K CLOSE
END

El resultado para cada pestaña en la hoja de trabajo Excel es:



Ejemplo: Cómo crear un informe compuesto con tablas de pívot y formulas
SET PAGE-NUM=OFF
TABLE FILE CAR
HEADING
"Sales Report"
" "
PRINT RCOST
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Sales Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS PIV1 FORMAT EXL2K OPEN
END
TABLE FILE CAR
HEADING
"Inventory Report"
" "
PRINT SALES
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Inv. Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS PPPP FORMAT EXL2K PIVOT
PAGEFIELDS TYPE SEATS
CACHEFIELDS MODEL MPG RPM 
END
TABLE FILE CAR
SUM RCOST
BY COUNTRY BY CAR BY MODEL BY TYPE BY SEATS SUMMARIZE
ON MODEL SUB-TOTAL
ON TABLE HOLD AS XFOCB FORMAT EXL2K FORMULA
END
TABLE FILE CAR
HEADING
"Cost of Goods Sold Report"
" "
PRINT DCOST
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Cost Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS ONE FORMAT EXL2K CLOSE PIVOT
PAGEFIELDS RCOST
CACHEFIELDS MODEL TYPE SALES ACCEL SEATS
END

El resultado para cada pestaña en la hoja de trabajo Excel es:



Ejemplo: Cómo crear un informe compuesto utilizando NOBREAK

En este ejemplo, los primeros dos informes están en la primera hoja de trabajo, y los últimos dos informes están en la segunda hoja de trabajo, dado que NOBREAK aparece en ambos el primer y tercer informes.

TABLE FILE GGSALES
HEADING
"Report 1: Coffee - Budget"
SUM BUDDOLLARS BUDUNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Coffee
ON TABLE PCHOLD FORMAT EXL2K OPEN NOBREAK
ON TABLE SET STYLE *
type=report, font=Arial, size = 10, style=normal, $
type=title, style=bold, $
type=heading,   size=12, style=bold, color=blue, $
type=grandtotal,  style=bold,  $
END
TABLE FILE GGSALES
HEADING
" "
"Report 2: Coffee - Actual "
SUM DOLLARS UNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Coffee
ON TABLE PCHOLD FORMAT EXL2K
ON TABLE SET STYLE *
type=report, font=Arial, size=10, style=normal, $
type=grandtotal,  style=bold, $
type=heading,  size=12, style=bold, color=blue, $
END
TABLE FILE GGSALES
HEADING
"Report 3: Food - Budget"
SUM BUDDOLLARS BUDUNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Food
ON TABLE PCHOLD FORMAT EXL2K NOBREAK
ON TABLE SET STYLE *
type=REPORT, font=Arial, size=10, style=normal, $
type=HEADING,  style=bold, size=12, color=blue, $
type=title, style=bold, $
type=grandtotal,  style=bold,  $
END
TABLE FILE GGSALES
HEADING
" "
"Report 4: Food - Actual"
SUM DOLLARS UNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Food
ON TABLE PCHOLD FORMAT EXL2K CLOSE
ON TABLE SET STYLE *
type=report, font=Arial, size=10,  $
type=title, style=bold, $
type=heading,size=12, style=bold,  color=blue,$
type=grandtotal, style=bold,  $
END

La salida es:


WebFOCUS