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:
En un informe de diseño compuesto coordinado, si uno de los componentes contiene datos para un valor de campo de clasificación específico, se genera una página para el valor, aunque falte alguno de los componentes. Para más información sobre los informes de diseño compuestos coordinados, con datos no disponibles, consulte Informes de diseño compuesto coordinado, con datos no disponibles.
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.
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.
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:
Nota: LAYOUT=ON es la única opción aplicable en este momento.
Nota: El valor predeterminado es OFF.
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.
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:
Nota: La sintaxis es obligatoria incluso cuando el informe sólo tiene una página.
PAGELAYOUT=1, $
PAGELAYOUT=ALL, $
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:
Por ejemplo, el informe siguiente no muestra ningún dato:
SET COMPONENT='DfltCmpt1' TABLE FILE SYSCOLUM SUM TBNAME NOPRINT IF READLIMIT EQ 1 ON TABLE SET PREVIEW ON ON TABLE SET PAGE-NUM NOLEAD END
SET COMPONENT='DfltCmpt1' TABLE FILE GGSALES SUM UNITS NOPRINT BY PCD NOPRINT IF READLIMIT EQ 1 ON TABLE SET PREVIEW ON ON TABLE SET PAGE-NUM NOLEAD END
Tenga en cuenta que el modo recomendado de crear un tema de diseño con textos e imágenes repetidos en una página modelo es colocando los objetos de dibujo en la página modelo. Para más información, consulte Cómo Dibujar objetos con la sintaxis del Compositor de documentos..
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:
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.
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.
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 = (* *).
Nota: El doble paréntesis es obligatorio.
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:
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:
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:
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:
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.
OBJECT=LINE, POSITION=(x1 y1), ENDPOINT=(x2 y2), [BORDER=b,] [BORDER-COLOR=c,] [BORDER-STYLE=s,]$
Opcionalmente, los atributos de borde BORDER, BORDER-COLOR y BORDER-STYLE siguen la sintaxis de BORDER existente, como se indica a continuación:
OBJECT=LINE, POSITION=(1 1), ENDPOINT=(8 1), BORDER=HEAVY, BORDER-COLOR=RED, BORDER-STYLE=DASHED, $
OBJECT=BOX, POSITION=(x y), DIMENSION=(xdim ydim), BACKCOLOR=c, [BORDER=b,] [BORDER-COLOR=bc,] [BORDER-STYLE=bs,] $
Sugerencia: El color de fondo, c, especifica el color con que se ha rellenado el cuadro, que puede ser cualquier color válido. Por ejemplo, amarillo o RGB(200 200 200).
Al igual que en la sintaxis de BORDER, los lados individuales del cuadro pueden tener un estilo diferente. Por ejemplo:
OBJECT=BOX, POSITION=(1 1), DIMENSION=(2 3), BACKCOLOR=YELLOW, BORDER=HEAVY, BORDER-TOP-COLOR=RED, BORDER-BOTTOM-COLOR=BLUE, $
Tenga en cuenta que, al igual que en la sintaxis de BORDER, los atributos de líneas o cuadros que no se han especificado explícitamente presentan estos valores predeterminados:
Puede aplicar un formato al texto mostrado en un objeto de texto, mediante etiquetas de marcado dentro de la porción de texto del objeto de texto. Los informes con etiquetas de marcado en objetos de texto se denominan informes de marcado. Puede generar un informe de marcado como un archivo de salida PDF, DHTML o PPT. WebFOCUS da soporte a un subconjunto de etiquetas HTML y a sus propias etiquetas de numeración de páginas. Para activar estas etiquetas de marcado (para tratarlas como elementos de formato, en lugar de mostrarlas como texto), añada el atributo MARKUP=ON al objeto de cadena. Para más información, consulte Etiquetas de marcado de formatos de texto para un objeto de texto.
Para trazar una cadena de texto estática en la posición (x y ), introduzca esta sintaxis:
OBJECT=STRING, POSITION=(X Y), TEXT='any text you like', [MARKUP={ON|OFF},] [FONT=f,] [SIZE=sz,] [STYLE=st,] [COLOR=c,] [WRAP=ON, DIMENSION=(xdim ydim),] [LINESPACING=linesoption ,] $
donde:
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.
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.
LINESPACING={SINGLE|1.5LINES|DOUBLE}
o
LINESPACING=type(value)
donde:
Tipo | Valor | Ejemplo |
---|---|---|
MULTIPLE | El porcentaje en el que se va a aumentar o reducir el interlineado. | LINESPACING=MULTIPLE(1.2) aumenta el interlineado en un 20 por ciento. |
MIN | El interlineado mínimo (en la unidad especificada por el parámetro UNITS), necesario para acomodar la fuente más grande en la línea. | LINESPACING=MIN(0.5) proporciona un interlineado mínimo de media pulgada, cuando UNITS=IN. |
EXACT | El interlineado fijo (en la unidad especificada por el parámetro UNITS) no ajustado por WebFOCUS. | LINESPACING=EXACT(.3)proporciona un interlineado mínimo de 0.3 pulgadas, cuando UNITS=IN. |
Opcionalmente, puede especificar los atributos FONT, SIZE, STYLE y COLOR como en cualquier otro objeto de texto de un informe. Por ejemplo:
OBJECT=STRING, POSITION=(1 1), TEXT='Hello world!', FONT=TIMES, SIZE=12, STYLE=BOLD, COLOR=RED, $
Nota: La posición de una cadena se mide a partir de la parte inferior izquierda para permitir la alineación de distintas cadenas con una línea de base común. Sin embargo, si WRAP=ON está presente, indica que la cadena debe ajustarse a un cuadro de límite con la esquina superior izquierda situada en (x y) y cuyas dimensiones son (xdim ydim). En este caso, la esquina superior izquierda de la cadena de texto queda colocada en el punto (x y).
OBJECT=IMAGE, IMAGE=file, POSITION=(x y), DIMENSION=(xdim ydim), $
Nota: El nombre del archivo =file de imagen puede tratarse de cualquier archivo de imagen válido en un informe PDF. POSITION se utiliza como en cualquier imagen convencional, mientras que DIMENSION se usa en lugar del atributo SIZE de una imagen convencional.
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.
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
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.
Justificación izquierda:
<left>text</left>
Justificación derecha:
<right>text</right>
Justificación centrada:
<center>text</center>
Justificación completa:
<full>text</full>
Alineación superior:
<top>text</top>
Alineación central:
<mid>text</mid>
Alineación inferior:
<bottom>text</bottom>
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:
Es el hipervínculo al que nos dirigimos al pulsar el texto.
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:
Si no es obligatorio un estilo específico para el objeto de texto, no inserte etiquetas de formato y desactive MARKUP.
MARKUP=OFF, TEXT='Page <ibi-page-number/> of <ibi-total-pages/> of Sales Report', $
Aparece lo siguiente
Page 1 of 100 of Sales Report
Si el objeto de texto debe tener un estilo específico, active MARKUP. Con MARKUP=ON, desactive WRAP y no coloque ninguna etiqueta de estilo entre las variables de número de página de la cadena. Las etiquetas pueden emplearse alrededor de la cadena Página n de m completa. El siguiente código produce una cadena de número de página sin los espacios adicionales:
MARKUP=ON, WRAP=OFF, TEXT='<font face="ARIAL" size=10><i>Page <ibi-page-number/> of <ibi-total-pages/> of Sales Report </i>', $
Aparece lo siguiente
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).
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:
‘Este párrafo presenta un espaciado triple (LINESPACING=MULTIPLE(3)):’
El marcado de este formato es:
<b><font face="Arial" size=12>This paragraph is triple-spaced (LINESPACING=MULTIPLE(3)):</font></b>
Sin embargo, observe que se ha ajustado el tamaño de la imagen para caber en la página, así que puede que la fuente parezca más pequeña:
<full>Our ... </full>
<i>primary</I>
La salida es:
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:
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:
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.
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
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
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
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:
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.
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.
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:
Entradas de componentes
COMPONENT=component1, TITLE='title1', TOC-LEVEL=n, [BYTOC=m,] POSITION=(xy),DIMENSION=(ab), $
donde:
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.
Apuntes principales
Apuntes sobre BYTOC
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:
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.
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:
Puede utilizar NOBREAK de manera selectiva para controlar los informes que se mostrarán en la misma página.
Nota:
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).
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.
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:
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.
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.
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).
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 '/'.
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.
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:
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:
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 |