Cómo clasificar columnas

En esta sección:

Cómo:

Referencia:

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.


Principio de página

x
Sintaxis: Cómo Clasificar columnas
ACROSS sortfield

donde:

sortfield

Es el nombre del campo de clasificación.


Principio de página

x
Referencia: Notas sobre el uso de columnas de clasificación


Ejemplo: Cómo clasificar columnas con ACROSS

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).


Principio de página

x
Cómo controlar la visualización de un título ACROSS para un campo individual

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.



x
Sintaxis: Cómo Controlar la visualización de un título ACROSS para un campo individual
SET ACRSVRBTITL = {OFF|ON|HIDEONE} 
ON TABLE SET ACRSVRBTITL {OFF|ON|HIDEONE}

donde:

OFF

Suprime el título cuando sólo hay un campo de visualización.

ON

Muestra el título cuando sólo hay un campo de visualización.

HIDEONE

Suprime el título cuando sólo hay un campo de visualización, aunque la solicitud contiene uno o varios de estos componentes:

  • Campos en un encabezado o en un pie.
  • Campos cuya visualización se suprime con la frase NOPRINT.
  • Campos de formato modificado (normalmente se cuentan dos veces).
  • Un comando COMPUTE que hace referencia a varios campos.


Ejemplo: Cómo mostrar o suprimir un título de columna ACROSS individual

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     


Ejemplo: Cómo ocultar un título ACROSS con HIDEONE

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    

Principio de página

x
Cómo posicionar títulos ACROSS en la salida de informes

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.



x
Sintaxis: Cómo Controlar la posición de los nombres de campos ACROSS
SET ACROSSTITLE = {ABOVE|SIDE}

donde:

ABOVE

Muestra los títulos ACROSS encima de sus valores ACROSS. ABOVE es el valor predeterminado.

SIDE

Muestra los títulos ACROSS a la izquierda de los valores ACROSS, encima de las columnas BY.



x
Referencia: Notas de uso de SET ACROSSTITLE
  • Al quedar ajustado el valor ACROSS, el título ACROSS se alinea con la línea superior de los valores ACROSS que han quedado ajustados.
  • El título ACROSS abarca el ancho de las columnas BY. Si el valor del título ACROSS es superior al ancho de las columnas BY en la página actual, el valor queda truncado. Puede que el primer panel tenga más campos BY que los paneles siguientes, cuando SET BYPANEL se ha establecido en un valor inferior al número total de campos BY.
  • Esta propiedad no crea una columna nueva dentro del informe para la colocación de títulos.
    • Si la solicitud no cuenta con campos BY, el título ACROSS no se mueve.
    • Con BYPANEL=OFF, el título ACROSS no aparece en los paneles posteriores.
  • WRAP no es compatible con SET ACROSSTITLE=SIDE.


Ejemplo: Cómo colocar el título ACROSS en la misma línea que los valores ACROSS

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:



Ejemplo: Espaciado de los títulos ACROSS

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.



Ejemplo: Cómo especificar el color de fondo de valores ACROSS con ACROSSTITLE=SIDE

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.


Principio de página

x
Cómo utilizar múltiples campos de clasificación horizontal (ACROSS)

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.



Ejemplo: Cómo utilizar múltiples frases de clasificación horizontal (ACROSS)

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

Principio de página

x
Cómo contraer PRINT con ACROSS

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.



x
Sintaxis: Cómo Comprimir líneas de informe
SET ACROSSPRT = {NORMAL|COMPRESS}
ON TABLE SET ACROSSPRT{NORMAL|COMPRESS}

donde:

NORMAL

No comprime las líneas de informe. NORMAL es el valor predeterminado.

COMPRESS

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.



x
Referencia: Notas de uso de SET ACROSSPRT


Ejemplo: Cómo comprimir la salida de informe con SET ACROSSPRT

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

Principio de página

x
Cómo ocultar las columnas nulas en grupos ACROSS

En esta sección:

Cómo:

Referencia:

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.



x
Sintaxis: Cómo Ocultar columnas ACROSS nulas
SET HIDENULLACRS = {ON|OFF}
ON TABLE SET HIDENULLACRS {ON|OFF}

donde:

ON

Oculta las columnas con datos no disponibles en los grupos ACROSS, dentro de un salto de página generado por BY.

OFF

No oculta las columnas. OFF es el valor predeterminado.



x
Referencia: Notas de uso para la ocultación de columnas nulas en grupos ACROSS
  • No se admite la alineación de elementos de encabezados con las columnas de datos asociadas (HEADALIGN), en los informes ACROSS.
  • La ocultación de columnas ACROSS no afecta a los artículos que estén colocados en elementos de encabezados con marcadores de posición o un posicionamiento explícito. Esto significa que, después de ocultarse las columnas de grupos ACROSS, los elementos pueden quedar alineados con las columnas ACROSS de un modo inesperado.


x
Referencia: Características no admitidas en la ocultación de columnas ACROSS nulas
  • Active Technologies.
  • EXL2K FORMULA.
  • EXL2K PIVOT.
  • OVER.
  • HIDENULLACRS sólo se admite con saltos de página especificados en frases ON byfieldname PAGE-BREAK o BY fieldname PAGE-BREAK. No se admite con:
    • BY field ROWS value OVER.
    • Campos FML FOR (FOR field value OVER PAGE-BREAK).


x
Cómo ocultar grupos y columnas ACROSS en saltos de página BY

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.



Ejemplo: Cómo ocultar grupos ACROSS nulos

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:



Ejemplo: Cómo ocultar columnas en grupos ACROSS

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:



Ejemplo: Cómo ocultar columnas nulas con varios campos ACROSS

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:



x
Cómo generar líneas de resumen y ocultar columnas ACROSS nulas

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).



Ejemplo: Cómo generar totales de columnas y ocultar columnas ACROSS nulas

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:



x
Cómo usar el estilo de columna y ocultar columnas ACROSS nulas

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:

  • Se ajusta BORDERS y BACKCOLOR para que quepan en el diseño del panel o página resultante después de ocultar las columnas.
  • Es estilo especificado para una columna concreta sigue ligado a dicha columna y no se ve afectado por las columnas ocultas. Por ejemplo, si la tercera columna ACROSS se ha definido con un estilo condicional y la segunda está oculta, se mantiene el formato de la columna que inicialmente era la tercera, aunque se ha convertido en la segunda columna en la salida.

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.



Ejemplo: Cómo usar el estilo de columna y ocultar columnas ACROSS nulas

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:



x
Cómo ocultar columnas ACROSS nulas en una solicitud FML

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.



Ejemplo: Cómo ocultar columnas ACROSS nulas en una solicitud FML

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