Puede clasificar información de informes en sentido horizontal con la frase ACROSS. Esta crea columnas en su informe. El total de columnas ACROSS es igual al total de valores de campo de clasificación ACROSS multiplicado por el total de campos de visualización.
Una solicitud puede incluir hasta 128 frases de clasificación, compuestas por una combinación de frases BY y ACROSS.
El límite del número de columnas por frase ACROSS es de 115, que puede alcanzarse con una sola frase ACROSS. El límite está basado en el número total de columnas permitido en una solicitud. En el caso de ACROSS, es de 1024 columnas, más 127 columnas de clasificación como máximo. El total de columnas ACROSS es igual al total de valores de campo de clasificación ACROSS multiplicado por el total de campos de visualización.
El máximo número de campos de visualización que puede contener su informe está determinado por una combinación de factores. Por lo regular, si un campo de clasificación horizontal (ACROSS) contiene muchos valores de datos, puede exceder el ancho permitido para informes o crear un informe que sea de difícil lectura. Para obtener información detallada, consulte Cómo mostrar datos de informes.
Se pueden generar totales de columna o sumarios de valores del campo de clasificación ACROSS mediante las frases ACROSS-TOTAL, SUBTOTAL, SUB-TOTAL, RECOMPUTE y SUMMARIZE. Para más detalles, consulte Cómo incluir totales y subtotales.
ACROSS sortfield
donde:
Es el nombre del campo de clasificación.
PRINT LAST_NAME ACROSS DEPARTMENT
imprime MIS una vez, seguido de seis nombres de empleados.
A continuación se explica cómo mostrar el salario total desembolsado para cada departamento. Esta solicitud se clasifica horizontalmente con una frase ACROSS.
TABLE FILE EMPLOYEE SUM CURR_SAL ACROSS DEPARTMENT END
La salida es:
DEPARTMENT MIS PRODUCTION --------------------------------- $108,002.00 $114,282.00
Fíjese que la clasificación horizontal muestra una columna para cada campo de clasificación (departamento).
Cómo: |
Por defecto, cuando el grupo de clasificación ACROSS sólo tiene un campo, no aparece un título de columna sobre él. El comando SET ACRSVRBTITL permite controlar la visualización de títulos de columnas ACROSS cuando aparece mostrado un campo para un grupo ACROSS. El recuento de campos que determina si aparece el título ACROSS depende de ciertos componentes en la solicitud de informe, como los campos calculados o la presencia de campos en los encabezados.
La salida no se ve afectada por los comandos SET que ajustan el subrayado de los títulos y el espacio entre columnas, o eliminan las columnas ACROSS vacías de la página. El tamaño del título y el número de líneas que ocupa tampoco afectan a la salida.
SET ACRSVRBTITL = {OFF|ON|HIDEONE}
ON TABLE SET ACRSVRBTITL {OFF|ON|HIDEONE}
donde:
Suprime el título cuando sólo hay un campo de visualización.
Muestra el título cuando sólo hay un campo de visualización.
Suprime el título cuando sólo hay un campo de visualización, aunque la solicitud contiene uno o varios de estos componentes:
La siguiente solicitud, basada en el origen de datos GGSALES, tiene un campo de visualización, DOLLARS. El parámetro ACRSVRBTITL está desactivado (por defecto):
SET ACRSVRBTITL=OFF TABLE FILE GGSALES SUM DOLLARS AS Sales ACROSS REGION ON TABLE SET PAGE NOPAGE ON TABLE SET STYLE * GRID=OFF,$ ENDSTYLE END
La salida no presenta ningún título que indique lo que representa el número de cada columna:
Region Midwest Northeast Southeast West ---------------------------------------------------- 11514345 11494543 11781285 11674908
A continuación le mostramos la misma solicitud con ACRSVRBTITL=ON:
SET ACRSVRBTITL=ON TABLE FILE GGSALES SUM DOLLARS AS Sales ACROSS REGION ON TABLE SET PAGE NOPAGE ON TABLE SET STYLE * GRID=OFF,$ ENDSTYLE END
En la salida, el título Sales aparece encima de cada valor de campo en el grupo ACROSS:
Region Midwest Northeast Southeast West Sales Sales Sales Sales ---------------------------------------------------- 11514345 11494543 11781285 11674908
La siguiente solicitud, basada en el origen de datos GGSALES, tiene un campo de visualización en el encabezado:
SET ACRSVRBTITL=OFF TABLE FILE GGSALES HEADING "Sales Report for <CATEGORY with ACRSVRBTITL=OFF" " " SUM DOLLARS AS Sales BY CATEGORY ACROSS REGION WHERE CATEGORY EQ 'Food' ON TABLE SET PAGE NOPAGE END
Con la configuración predeterminada ACRSVRBTITL=OFF, el campo del encabezado cuenta y no se suprime el título ACROSS, Sales:
Sales Report for Food with ACRSVRBTITL=OFF Region Midwest Northeast Southeast West Category Sales Sales Sales Sales ------------------------------------------------------------- Food 4404483 4445197 4308731 4204333
Si activa ACRSVRBTITL, se genera el mismo informe:
Sales Report for Food with ACRSVRBTITL=ON Region Midwest Northeast Southeast West Category Sales Sales Sales Sales ------------------------------------------------------------- Food 4404483 4445197 4308731 4204333
Si cambia ACRSVRBTITL a HIDEONE, se suprime Sales, el título ACROSS:
Sales Report for Food with ACRSVRBTITL=HIDEONE Region Midwest Northeast Southeast West Category ------------------------------------------------------------- Food 4404483 4445197 4308731 4204333
Cómo: Referencia: |
En los informes que emplean la frase ACROSS para clasificar valores en horizontal sobre la página, se generan dos líneas para las columnas ACROSS en la salida del informe, por defecto. La primera línea muestra el nombre del campo de clasificación (título ACROSS), mientras que la segunda muestra los valores de dicho campo (valor ACROSS). El nombre del campo ACROSS está justificado a la izquierda, encima del primer campo ACROSS.
Si desea mostrar el título ACROSS y los valores ACROSS en una línea de la salida de informes PDF, HTML, EXL2K, o EXL07, emita el comando SET ACROSSTITLE = SIDE. Este comando coloca los títulos ACROSS a la izquierda de los valores ACROSS. Por defecto, los títulos quedan justificados a la derecha en el espacio situado sobre los títulos de los campos BY. Puede cambiar la justificación del título ACROSS añadiendo el atributo JUSTIFY a la declaración de hoja de estilos del componente ACROSSTITLE. Si no hay campos BY, no se generará la línea de encabezado creada por defecto para mostrar el título ACROSS.
Esta característica está diseñada para su uso en solicitudes con campos ACROSS y BY. Para las solicitudes que presenten campos ACROSS, pero no BY, se ignora el comando set y no se mueven los títulos ACROSS.
Tenga en cuenta que en ciertos formatos de salida, puede determinar si los títulos de columnas se subrayan, mediante el comando SET TITLELINE. SET ACROSSLINE es un sinónimo de SET TITLELINE. Para más información, consulte Cómo usar encabezados, pies, títulos y etiquetas.
SET ACROSSTITLE = {ABOVE|SIDE}
donde:
Muestra los títulos ACROSS encima de sus valores ACROSS. ABOVE es el valor predeterminado.
Muestra los títulos ACROSS a la izquierda de los valores ACROSS, encima de las columnas BY.
El ejemplo siguiente, basado en el origen de datos GGSALES, presenta dos campos de clasificación ACROSS, CATEGORY y PRODUCT. SET ACROSSTITLE=SIDE desplaza el título ACROSS a la izquierda de los valores ACROSS. Cuando BYPANEL=ON, los títulos ACROSS se repiten en el mismo lugar en cada panel posterior.
SET ACROSSTITLE=SIDE SET BYPANEL=ON TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE PRODUCT NE 'Capuccino'; ON TABLE SET PAGE-NUM ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, FONT='ARIAL', SIZE=10, BORDER=LIGHT, $ TYPE=ACROSSVALUE, WRAP=ON, $ ENDSTYLE END
El título ACROSS Categoría aparece a la izquierda de los valores ACROSS Café, Alimentos y Regalos. El título ACROSS Producto también aparece a la izquierda de los valores ACROSS Espresso, Latte, Biscotti, etc. Los títulos ACROSS están justificados a la derecha, encima del espacio ocupado por los nombres de los campos BY Región, Estado y Ciudad. Observe como el valor ACROSS Croissant se ha ajustado a la segunda línea y el título ACROSS está alineado con la línea superior. Imagen del panel 1:
Imagen del panel 2:
El ejemplo siguiente, basado en el origen de datos GGSALES, presenta dos campos BY y dos campos ACROSS. En este ejemplo, los bordes no se han activado y no se permite ajustar los valores ACROSS. SET ACROSSTITLE=SIDE desplaza el título ACROSS a la izquierda de los valores ACROSS. El comando SET BYPANEL=1 sólo hace que se repita el primer campo BY en el segundo panel. Para evitar el truncamiento de los títulos ACROSS para que quepan encima del campo BY en el segundo panel, el primer campo BY presenta un nombre AS más largo que el nombre predeterminado:
SET ACROSSTITLE=SIDE SET BYPANEL=1 TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY ST AS 'State Code' BY CITY ACROSS CATEGORY AS 'Categories' ACROSS PRODUCT AS 'Products' WHERE PRODUCT NE 'Capuccino'; ON TABLE SET PAGE-NUM ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, FONT='ARIAL', SIZE=10, $ ENDSTYLE END
Imagen del primer panel:
Debido al comando SET BYPANEL=1, el espacio disponible sobre los campos BY en el segundo panel es inferior al espacio en el panel inicial. El nombre AS Código de estado añade espacio para los títulos ACROSS para que los títulos no se trunquen en el segundo panel.
La siguiente solicitud, basada en el origen de datos GGSALES, coloca los títulos de ACROSS junto a los valores de ACROSS, y establece un estilo coincidente (texto en blanco, color de fondo en gris) para el color de las fuentes y el fondo de los títulos de ACROSSTITLES, ACROSSVALUES y de las columnas.
SET ACROSSTITLE=SIDE TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE CATEGORY EQ 'Coffee' OR 'Food'; ON TABLE SET PAGE-NUM NOPAGE ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * SQUEEZE=ON,UNITS=IN,ORIENTATION=PORTRAIT,$ TYPE=REPORT,FONT='ARIAL',SIZE=10,BORDER=LIGHT,$ TYPE=ACROSSTITLE,COLOR=WHITE, BACKCOLOR=GREY,$ TYPE=ACROSSVALUE,COLOR=WHITE, BACKCOLOR=GREY,$ TYPE=TITLE,COLOR=WHITE, BACKCOLOR=GREY,$ ENDSTYLE END
La salida tiene un color de fondo gris, mientras que el texto aparece en blanco, para los títulos y valores de ACROSS, y los títulos de las columnas.
Puede clasificar un informe con más de un campo de clasificación. Cuando se usan varios campos de clasificación, el orden de la frase ACROSS determina el orden de clasificación. La primera frase ACROSS establece el primer salto de clasificación, la segunda frase ACROSS establece el segundo salto de clasificación, y así sucesivamente. Cada clasificación sucesiva se inserta en la anterior.
La siguiente solicitud clasifica la suma de los salarios actuales, primero por departamento y luego por código de trabajo.
TABLE FILE EMPLOYEE SUM CURR_SAL ACROSS DEPARTMENT ACROSS CURR_JOBCODE WHERE CURR_SAL GT 21500 END
La salida es:
DEPARTMENT MIS PRODUCTION CURR_JOBCODE A17 B04 A15 A17 ------------------------------------------------------------------------ $27,062.00 $21,780.00 $26,862.00 $29,700.00
Cómo: Referencia: |
El comando PRINT genera un informe con una línea individual para cada registro recuperado del origen de datos, después de eliminar los que han suspendido las pruebas IF o WHERE. Si usa PRINT junto a una frase ACROSS, puede que muchas de las columnas generadas estén vacías. Estas columnas muestran el símbolo de datos no disponibles.
A fin de evitar que se imprima un informe tan disperso, utilice el comando SET ACROSSPRT para comprimir las líneas del informe. El número de líneas queda reducido en cada grupo de clasificación, mediante el intercambio de valores disponibles de líneas inferiores por valores no disponibles de líneas superiores y, más adelante, la eliminación de las líneas que tengan columnas con valores no disponibles.
Puesto que los datos pueden moverse a líneas de informe diferentes, los cálculos basados en filas, como ROW-TOTAL y ACROSS-TOTAL, en un informe comprimido son distintas a las de un informe no comprimido. Los cálculos de columnas no se ven afectados por la compresión de líneas de informe.
SET ACROSSPRT = {NORMAL|COMPRESS}
ON TABLE SET ACROSSPRT{NORMAL|COMPRESS}
donde:
No comprime las líneas de informe. NORMAL es el valor predeterminado.
Comprime las líneas de informe ascendiendo los valores de datos para que sustituyan a los valores no disponibles en un grupo de clasificación.
La siguiente solicitud frente al origen de datos GGSALES imprime ventas de unidades por producto, en cada región:
TABLE FILE GGSALES
PRINT UNITS/I5
BY PRODUCT
ACROSS REGION
WHERE DATE FROM '19971201' TO '19971231';
WHERE PRODUCT EQ 'Capuccino' OR 'Espresso';
ON TABLE SET ACROSSPRT NORMALON TABLE SET PAGE NOPAGE
END
Cada línea del informe representa una venta en una región, así que cada columna de cada fila presenta un valor no disponible, cuando ACROSSPORT está en NORMAL.
Region Midwest Northeast Southeast West Product Unit Sales Unit Sales Unit Sales Unit Sales ----------------------------------------------------------------- Capuccino . 936 . . . 116 . . . 136 . . . . 1616 . . . 1118 . . . 774 . . . . 1696 . . . 1519 . . . 836 Espresso 1333 . . . 280 . . . 139 . . . . 1363 . . . 634 . . . 406 . . . . 1028 . . . 1014 . . . 885 . . . . 1782 . . . 1399 . . . 551
Si establece ACROSSPRT en COMPRESS, los valores disponibles quedan ascendidos para reemplazar a los valores no disponibles, dentro del mismo grupo BY, y a continuación elimina las líneas que sólo tengan valores no disponibles.
TABLE FILE GGSALES
PRINT UNITS/I5
BY PRODUCT
ACROSS REGION
WHERE DATE FROM '19971201' TO '19971231';
WHERE PRODUCT EQ 'Capuccino' OR 'Espresso';
ON TABLE SET ACROSSPRT COMPRESSON TABLE SET PAGE NOPAGE
END
La salida es:
Region Midwest Northeast Southeast West Product Unit Sales Unit Sales Unit Sales Unit Sales ---------------------------------------------------------------- Capuccino . 936 1616 1696 . 116 1118 1519 . 136 774 836 Espresso 1333 1363 1028 1782 280 634 1014 1399 139 406 885 551
Las solicitudes de informe que emplean la frase de clasificación ACROSS dan lugar a un grupo de columnas (una por cada campo de visualización en la solicitud), debajo de cada valor del campo ACROSS. En muchos casos, algunas de estas columnas sólo incluyen valores no disponibles o nulos. Puede utilizar el parámetro HIDENULLACRS para ocultar los grupos ACROSS que sólo incluyan columnas nulas, en los formatos de salida con estilo. Si existe un campo BY con la opción PAGE-BREAK, se oculta las columnas en cada página de salida generada por la opción PAGE-BREAK. Si la solicitud no contiene saltos de página BY, se oculta los grupos ACROSS que falten en todo el informe.
La ocultación de columnas ACROSS nulas se admite en todos los formatos de salida con estilo, excepto las opciones EXL2K PIVOT y EXL2K FORMULA. No se admite con Active Technologies.
SET HIDENULLACRS = {ON|OFF}
ON TABLE SET HIDENULLACRS {ON|OFF}
donde:
Oculta las columnas con datos no disponibles en los grupos ACROSS, dentro de un salto de página generado por BY.
No oculta las columnas. OFF es el valor predeterminado.
Ocultar las columnas nulas resulta útil cuando un campo de clasificación BY presenta la opción PAGE-BREAK en la frase BY misma o en una frase ON. El cambio del valor del campo BY determina cuándo se genera un salto de página para dicho campo. El cambio del valor de un campo BY define los límites en que van a quedar ocultadas las columnas ACROSS, incluso cuando el campo BY abarca varias páginas físicas.
No existe un modo de especificar un campo BY determinado mediante esta propiedad, así que si la solicitud presenta varios campos BY con saltos de página, la propiedad se aplica a todos ellos. Si no hay campos BY con saltos de página, debe haber una columna ACROSS no disponible en todo el informe para que pueda ocultarse.
Se oculta la totalidad del grupo ACROSS cuando el valor ACROSS no está disponible o todas las filas de todas las columnas de visualización situadas bajo el valor ACROSS contienen valores nulos o no disponibles en el valor de un campo BY determinado.
Si todos los grupos ACROSS de un valor de campo BY están ocultos, también se oculta el conjunto de páginas generadas para ese valor de campo BY, que incluye un salto de página.
Una vez eliminadas las columnas de una página o panel, la posición de las columnas cambia para ocupar el espacio que falta.
La solicitud siguiente, basada en el origen de datos GGSALES, tiene un salto de página en el campo BY llamado REGION y una frase ACROSS en el campo CITY. UNITS y DOLLARS son los campos de visualización de cada grupo ACROSS:
SET HIDENULLACRS=OFF TABLE FILE GGSALES SUM UNITS DOLLARS BY REGION PAGE-BREAK BY ST ACROSS CITY WHERE CITY LE 'Memphis' ON TABLE SET HTMLCSS ON ON TABLE PCHOLD FORMAT HTML ON TABLE SET STYLE * TYPE=REPORT, FONT=ARIAL, SIZE=9,$ ENDSTYLE END
Cuando SET HIDENULLACRS=OFF, aparecen todas las columnas:
Al ejecutar la solicitud con SET HIDENULLACRS=ON, se eliminan todos los grupos ACROSS para las ciudades que tengan datos no disponibles en cada región. Por ejemplo, la región Centro Oeste no incluye columnas para Atlanta ni Boston:
En la siguiente solicitud, basada en el origen de datos GGSALES, REGION es un campo BY con un PAGE-BREAK y PRODUCT es el campo ACROSS. El comando DEFINE crea un campo llamado SHOWDOLLARS, que tiene valores no disponibles para la columna Espresso, dentro del grupo ACROSS Café:
SET HIDENULLACRS=OFF SET BYPANEL=2 DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF (PRODUCT EQ 'Espresso') THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES HEADING "Page <TABPAGENO " SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS PRODUCT WHERE REGION EQ 'Midwest' OR 'Northeast' WHERE CATEGORY EQ 'Coffee'; ON REGION PAGE-BREAK ON TABLE SET PAGE-NUM ON ON TABLE NOTOTAL ON TABLE SET HTMLCSS ON ON TABLE PCHOLD FORMAT HTML ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=9, $ ENDSTYLE END
Al ejecutar la solicitud con SET HIDENULLACRS=OFF, aparecen la columna Espresso y cualquier otra columna que contenga valores no disponibles en el grupo Café:
Al ejecutar la solicitud con SET HIDENULLACRS=ON, se oculta las columnas con datos no disponibles en cada región. En la página (Centro Oeste), ambas columnas, Capuccino y Espresso están ocultas, mientras que en la página 2 (Noreste) la única columna oculta es Espresso:
La siguiente solicitud, basada en el origen de datos GGSALES, presenta dos campos ACROSS, CATEGORY y PRODUCT. El campo BY con salto de página es REGION. El comando DEFINE crea un campo llamado SHOWDOLLARS, que tiene valores no disponibles para la columna Espresso, dentro del grupo ACROSS Café, y para todo el grupo ACROSS Regalos.
SET HIDENULLACRS=OFF DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF (PRODUCT EQ 'Espresso' OR CATEGORY EQ 'Gifts') THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE REGION EQ 'Midwest' OR 'Northeast' ON REGION PAGE-BREAK HEADING "Page <TABPAGENO /<TABLASTPAGE " ON TABLE SET PAGE-NUM OFF ON TABLE SET BYPANEL ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, HEADPANEL=ON, GRID=OFF, FONT='ARIAL', SIZE=8, $ ENDSTYLE END
Al ejecutar la solicitud con SET HIDENULLACRS=OFF, aparecen todas las columnas:
Al ejecutar la solicitud con SET HIDENULLACRS=ON, se oculta el producto Espresso y la totalidad de la categoría Regalos de cada región. En la página (Centro Oeste), el grupo Regalos y las columnas Capuccino y Espresso están ocultos, mientras que en la página 2 (Noreste) sólo están ocultos el grupo Regalos y la columna Espresso:
Si todo un grupo ACROSS está oculto, también se oculta los totales generados para el valor de campo BY asociado. Si alguna de las columnas del valor ACROSS contiene datos disponibles (no no-disponibles), el grupo ACROSS aparece con los datos disponibles.
Los elementos de resumen permanecen ligados a sus columnas de grupo ACROSS. Si hay un grupo ACROSS oculto, el valor de resumen asociado también estará oculto; los valores posteriores vuelven a alinearse con sus columnas ACROSS.
Las líneas de resumen generadas en los saltos de campo BY aparecen al final de la última página para ese valor de campo BY. Todos los grupos ACROSS que contienen datos disponibles en todo el valor BY (incluso si están ocultos en algunas páginas dentro del valor BY) aparecerán en las líneas de resumen para poder mostrar los valores de resumen asociados.
Los totales generales pueden contener columnas ACROSS ocultas en algunas páginas, dentro de un valor de campo BY. Por tanto, siempre quedan colocados en una página nueva y se presentan para todos los grupos y columnas ACROSS mostradas en una página del informe, independientemente de lo que estuviese oculto en otras páginas.
Las líneas de resumen definidas para los campos BY, fuera del salto de página BY más interno, también pueden incluir columnas ACROSS ocultas en algunos de los campos BY internos. Por este motivo, estas líneas de resumen siempre presentan todas las columnas ACROSS disponibles y aparecen en una página nueva.
Si todos los totales de columnas no están disponibles, se ocultan todos los totales calculados en las columnas (ACROSSTOTAL, ROWTOTAL).
En la siguiente solicitud, basada en el origen de datos GGSALES, REGION es un campo BY con un PAGE-BREAK y PRODUCT es el campo ACROSS. El comando DEFINE crea un campo llamado SHOWDOLLARS, que tiene valores no disponibles para la columna Espresso, dentro del grupo ACROSS Café. Los totales de columna se generan al final del informe:
SET HIDENULLACRS=ON DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF (PRODUCT EQ 'Espresso') THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS PRODUCT ON REGION PAGE-BREAK HEADING "Page <TABPAGENO /<TABLASTPAGE " WHERE CATEGORY EQ 'Coffee'; ON TABLE SET PAGE-NUM OFF ON TABLE SET BYPANEL ON ON TABLE COLUMN-TOTAL AS 'TOTAL' ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, HEADPANEL=ON, GRID=OFF, FONT='ARIAL', SIZE=9, $ ENDSTYLE END
Al ejecutar la solicitud, las columnas nulas quedan ocultas dentro de cada salto de página REGION y se genera una página independiente para los totales de columna.
La imagen siguiente muestra las páginas 1-3. En la página 1, las columnas Espresso y Capuccino están ocultas. En las páginas 2 y 3, la columna Espresso está oculta:
La imagen siguiente muestra las páginas cuatro y cinco. En la página 4, la columna Espresso está oculta. La página 5 es la de totales. La columna Espresso está oculta, ya que está oculta en todas las páginas de detalles. Sin embargo, Capuccino no está oculta ya que aparece en algunas páginas:
El estilo de columna sigue ligado a la columna original, independientemente de que la columna se encuentre en el mismo lugar de la salida del informe, debido a que las columnas nulas están ocultas. En particular:
Para más información sobre el estilo de las columnas, consulte Cómo identificar un componente de informe en una hoja de estilo de WebFOCUS.
En la siguiente solicitud, basada en el origen de datos GGSALES, REGION es un campo BY con un PAGE-BREAK y PRODUCT es el campo ACROSS. El comando DEFINE crea un campo llamado SHOWDOLLARS con valores no disponibles para la columna Capuccino en la región Centro Oeste, la columna Termos en la región Noreste, la columna Bollo en la región Sureste, y toda la región Oeste. Se generan los totales de las columnas y filas y un subtotal para cada región.
Se asigna colores de fondo a algunas de las columnas:
Imagen de la solicitud:
SET HIDENULLACRS=OFF DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF ((PRODUCT EQ 'Capuccino' AND REGION EQ 'Midwest') OR (PRODUCT EQ 'Coffee Grinder' AND REGION EQ 'Northeast') OR (PRODUCT EQ 'Scone' AND REGION EQ 'Southeast') OR (REGION EQ 'West')) THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT ON REGION SUBTOTAL AS '*TOTAL' ON REGION PAGE-BREAK HEADING " Page <TABPAGENO "HEADING " Capuccino Missing in Coffee Group " WHEN REGION EQ 'Midwest'; HEADING " Coffee Grinder Missing in Gifts Group " WHEN REGION EQ 'Northeast'; HEADING " Scone Missing in Food Group " WHEN REGION EQ 'Southeast'; WHERE CATEGORY EQ 'Coffee' OR 'Food' ON TABLE SET PAGE-NUM OFF ON TABLE SET BYPANEL ON ON TABLE ROW-TOTAL AS 'TOTAL' ON TABLE COLUMN-TOTAL AS 'TOTAL' ON TABLE SET HTMLCSS ON ON TABLE PCHOLD FORMAT HTML ON TABLE SET STYLE * UNITS=IN,PAGESIZE='Letter',SQUEEZE=ON,ORIENTATION=PORTRAIT,$ TYPE=REPORT,HEADPANEL=ON,GRID=OFF,FONT='ARIAL',SIZE=6,$ TYPE=HEADING, style=bold, size=8,$ TYPE=DATA, COLUMN = C5, BACKCOLOR=WHEAT,$ TYPE=DATA, COLUMN = P5, BACKCOLOR=THISTLE,$ TYPE=DATA, COLUMN = N7, BACKCOLOR=MEDIUM GOLDENROD,$ TYPE=DATA, COLUMN = B3, BACKCOLOR=GOLDENROD,$ TYPE=DATA, COLUMN = SHOWDOLLARS(6), BACKCOLOR=silver,$ ENDSTYLE END
Al ejecutar el informe con SET HIDENULLACRS=OFF, aparecen todas las columnas. Se genera una página para la región Oeste y se calculan los subtotales, aunque ninguno de los valores está disponible:
Al ejecutar el informe con SET HIDENULLACRS=ON:
La salida es:
Las solicitudes FML siempre cuentan con un campo FOR que define el orden las filas específicas. El campo FOR no puede usarse para desencadenar la ocultación de columnas ACROSS nulas. Sin embargo, la solicitud también puede tener un campo BY con una opción PAGE-BREAK, que puede utilizarse para ocultar las columnas ACROSS nulas.
La siguiente solicitud FML, basada en el origen de datos GGSALES, tiene un campo BY llamado REGION, con la opción PAGE-BREAK, y un campo ACROSS llamado QTR. El campo FOR es PRODUCT. El comando DEFINE crea el campo QTR y contiene los valores no disponibles de Q4 en la región Centro oeste, Q2 en la región Noreste, y de todos los trimestres en la región Sureste.
SET HIDENULLACRS=ON DEFINE FILE GGSALES QTR/Q=DATE; SHOWDOLLARS/D12CM MISSING ON = IF REGION EQ 'Midwest' AND QTR EQ 'Q4' THEN MISSING ELSE IF REGION EQ 'Northeast' AND QTR EQ 'Q2' THEN MISSING ELSE IF REGION EQ 'Southeast' THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS BY REGION ACROSS QTR FOR PRODUCT 'Biscotti' AS 'Biscotti' LABEL R1 OVER 'Capuccino' AS 'Capuccino' LABEL R2 OVER 'Latte' AS 'Latte' LABEL R3 OVER 'Mug' AS 'Mug' LABEL R4 OVER 'Coffee Pot' AS 'Coffee Pot' LABEL R5 OVER RECAP R6/D12.2=R1+R2+R3+R4+R5; AS '' ON REGION PAGE-BREAK 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=TITLE, STYLE=BOLD,$ TYPE=ACROSSTITLE, STYLE=BOLD,$ ENDSTYLE END
Al ejecutar la solicitud con SET HIDENULLACRS=OFF, se generan todas las columnas y una página para todas las regiones, incluidas las regiones Sureste en que todos los valores son de tipo no disponible:
Al ejecutar la solicitud con SET HIDENULLACRS=ON, se ocultan las columnas Q4, para la región Oeste central, Q2, para Noreste y toda la página para la región Sureste:
WebFOCUS |