Cómo organizar columnas en una página

En esta sección:

Referencia:

La facilidad o dificultad con que un usuario localice los datos dependerá de la organización de las columnas en una página. Existen muchas opciones de diseño. Con los atributos o comandos de hoja de estilos puede:


Principio de página

x
Referencia: Características de organización de columnas

Característica

Descripción

Funciona en

SQUEEZE

Fija el ancho de la columna

HTML (requiere FONT=DEFAULT-FIXED)

PDF

PS

SET SPACES

Fija el número de espacios entre columnas

HTML (requiere SET STYLEMODE=FIXED)

SEQUENCE

Fija el orden de las columnas

PDF

PS

HTML

EXL2K (Nota: no funciona con EXL2K FORMULA)

FOLD-LINE

Apila las columnas y reduce así el ancho del informe.

PDF

PS

OVER

Apila las columnas colocándolas una sobre la otra.

HTML

PDF

PS

IN {n|+n}

Fija el punto de inicio absoluto o relativo de una columna.

HTML (requiere SET STYLEMODE=FIXED)

PDF

PS



x
Cómo determinar el ancho de la columna

Cómo:

El valor del atributo SQUEEZE en una hoja de estilos determina el ancho de la columna en un informe. En vez de una hoja de estilos, puede usar un parámetro SET para fijar el valor de SQUEEZE. Si los valores de hoja de estilos y SET entran en conflicto, el valor de hoja de estilos anula al valor SET. Para más detalles sobre SET, consulte el manual Cómo desarrollar aplicaciones de informes.

Cuando SQUEEZE está activado (por defecto), se ignora la columna de la hoja de estilos. El ancho de la columna se determina usando la configuración predeterminada de su navegador.

El uso de SQUEEZE puede afectar la manera en que los encabezados, las notas al pie y los títulos de columna aparezcan en su informe. Para obtener información detallada, consulte Cómo usar encabezados, pies, títulos y etiquetas.



x
Sintaxis: Cómo Determinar el ancho de una columna (HTML)

Esta sintaxis se aplica a un informe HTML. Para ver la sintaxis de un informe PDF o PS, consulte Cómo Determinar el ancho de una columna (PDF o PS).

[TYPE=REPORT,] SQUEEZE={ON|OFF}, $

donde:

TYPE=REPORT

Aplica el ancho de columna a todo el informe. No se requiere, pues es el predeterminado

ON

Determina el ancho de la columna a partir del que sea más ancho, el valor de datos o el título de columna. ON es el valor predeterminado.

En el caso de los informes HTML, el navegador web reduce los anchos de columna al ancho del título de columna o valor de campo más estrecho.

OFF

Determina el ancho de columna a partir del formato de campo en el archivo máster. Los espacios en blanco acomodan el ancho de columna hasta la longitud del título de la columna o del formato de campo, el que sea más ancho.

Nota: No se admite SQUEEZE para columnas creadas con la frase OVER.



Ejemplo: Cómo usar anchos de columna predeterminados (HTML)

Esta solicitud usa SQUEEZE=ON (la posición predeterminada) para un informe HTML. El ancho de la columna se determina a partir del que sea más ancho, el valor de los datos o el título de la columna.

SET PAGE-NUM = OFF
TABLE FILE GGSALES
SUM UNITS DOLLARS
BY CATEGORY BY PRODUCT
ON TABLE SET STYLE *
TYPE=REPORT, GRID=OFF, FONT=COURIER, $
ENDSTYLE
END

En los casos de Category, Unit Sales y Dollar Sales, el título de la columna es más ancho que los valores de datos correspondientes. En el caso de Product, los valores de datos más anchos determinan el ancho de la columna. El informe HTML es:



Ejemplo: Cómo usar anchos de columna basados en formatos de campo en el archivo máster (HTML)

Esta solicitud establece SQUEEZE en OFF para un informe HTML. El ancho de la columna es determinado por el formato de campo en el archivo máster.

SET PAGE-NUM = OFF
TABLE FILE GGSALES
SUM UNITS DOLLARS
BY CATEGORY BY PRODUCT
ON TABLE SET STYLE *
TYPE=REPORT, GRID=OFF, SQUEEZE=OFF, FONT=COURIER, $
ENDSTYLE
END

Los espacios en blanco acomodan el ancho de la columna hasta alcanzar la longitud del formato de campo para Category (A11) y Product (a16). El informe HTML es:



x
Sintaxis: Cómo Determinar el ancho de una columna (PDF o PS)

Esta sintaxis se aplica a un informe PDF o PS. Para la sintaxis de un informe HTML, consulte Cómo Determinar el ancho de una columna (HTML).

[TYPE=REPORT,] COLUMN=identifier, SQUEEZE={ON|OFF|width}, $

donde:

TYPE=REPORT

Aplica el ancho de columna a todo el informe. No se requiere, pues es el predeterminado

identifier

Selecciona una columna mediante el atributo COLUMN descrito en Cómo identificar un componente de informe en una hoja de estilo de WebFOCUS. Si omite un identificador de columna, el valor de SQUEEZE se aplica a todas las columnas del informe. También puede usar SET SQUEEZE para fijar el ancho de todas las columnas.

ON

Determina el ancho de la columna a partir del que sea más ancho, el valor de datos o el título de columna. ON es el valor predeterminado.

OFF

Determina el ancho de columna a partir del formato de campo en el archivo máster. Los espacios en blanco acomodan el ancho de columna hasta la longitud del título de la columna o del formato de campo, el que sea más ancho.

width

Es una medida del ancho de la columna que se especifica con el atributo UNITS.

Si el valor de datos más ancho supera la medida especificada:

Y el campo es...

Aparece lo siguiente...

Alfanumérico

Todo lo que quepa en el ancho especificado, seguido de un signo de exclamación (!) para indicar un corte.

Numérica

Asteriscos (*) en lugar del valor de campo.

Nota: No se admite SQUEEZE para columnas creadas con la frase OVER.



Ejemplo: Cómo determinar el ancho de la columna (PDF)

Esta solicitud usa SQUEEZE=2.5 para aumentar la columna predeterminada del campo PRODUCT en un informe PDF. Fíjese que esta característica se usa primordialmente en informes impresos. En función de la resolución de su pantalla, puede que el ancho de las columnas se muestre de manera diferente a cómo se imprimirá.

SET ONLINE-FMT = PDF 
TABLE FILE GGSALES
SUM UNITS
BY PRODUCT
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLE * 
TYPE=REPORT, COLUMN=PRODUCT, SQUEEZE=2.5, $ 
ENDSTYLE
END

El informe PDF es:


Principio de página

x
Cómo controlar el espaciado de la columna

Cómo:

De forma predeterminada, las columnas de los informes están separadas por uno o dos espacios, dependiendo del ancho de la salida. Los parámetros SET SPACES y ON TABLE SET SPACES controlan el número de espacios entre columnas en un informe.

En una frase de clasificación horizontal (ACROSS), el parámetro SPACES determina la distancia entre conjuntos de clasificación horizontal. Dentro del conjunto, la distancia entre columnas es siempre de un espacio y no se puede cambiar.

Esta característica se aplica a un informe HTML. Es obligatorio que establezca el parámetro STYLEMODE en FIXED.



x
Sintaxis: Cómo Controlar el espaciado de la columna

Esta sintaxis se aplica a un informe HTML.

Para todas las solicitudes de informe en un procedimiento

SET SPACES = {n|AUTO}

Para una solicitud de informe

ON TABLE SET SPACES {n|AUTO}

donde:

n

Es un número entero entre 1 y 8 que indica el número de espacios entre las columnas de los informes.

AUTO

Separa automáticamente las columnas de los informes con uno o dos espacios. AUTO es el valor predeterminado.



Ejemplo: Cómo controlar el espaciado de la columna entre campos horizontales (ACROSS)

Esta solicitud usa ACROSS con ON TABLE SET SPACES. Se requiere el parámetro ON TABLE SET STYLEMODE FIXED para HTML.

TABLE FILE CENTORD
SUM QUANTITY LINEPRICE ACROSS ORDER_NUM BY PLANT AS 'Plant'
WHERE ORDER_NUM EQ '28003' OR '28004' 
ON TABLE SET SPACES 7 
ON TABLE SET PAGE-NUM OFF 
ON TABLE SET STYLEMODE FIXED 
END

El conjunto ACROSS está formado por los campos Quantity y Line Total. La distancia entre cada conjunto es de siete espacios:


Principio de página

x
Cómo cambiar el orden de las columnas

Cómo:

Puede cambiar el orden en que aparecen las columnas de clasificación vertical (BY) en un informe. Esta característica no se aplica a las filas de clasificación horizontal (ACROSS) o a las columnas apiladas (OVER).



x
Sintaxis: Cómo Cambiar el orden de las columnas

Esta sintaxis aplica a informes PDF, PS, HTML y EXL2K.

[TYPE=REPORT,] COLUMN=identifier, SEQUENCE=sequence, $

donde:

TYPE=REPORT

Aplica el orden de las columnas a todo el informe. No se requiere, pues es el predeterminado

identifier

Selecciona una columna mediante el atributo COLUMN descrito en Cómo identificar un componente de informe en una hoja de estilo de WebFOCUS.

sequence

Es un número que representa el orden de la columna seleccionada.

Los números no tienen que estar en orden secuencial o en incrementos de uno. El orden de las columnas es de menor a mayor. Las columnas NOPRINT no están incluidas.



Ejemplo: Cómo cambiar el orden de las columnas

Esta solicitud reorganiza el orden en que las columnas suelen aparecer en el informe, es decir, con SNAME primero, PRODCAT segundo y LINEPRICE en tercer lugar.

SET ONLINE-FMT = PDF
TABLE FILE CENTORD
SUM LINEPRICE AS 'Sales'
BY SNAME BY PRODCAT AS 'Product'
WHERE SNAME EQ 'eMart' OR 'City Video'
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLE * 
TYPE=REPORT, COLUMN=SNAME, SEQUENCE=3, $
TYPE=REPORT, COLUMN=PRODCAT, SEQUENCE=2, $
TYPE=REPORT, COLUMN=LINEPRICE, SEQUENCE=1, $ 
ENDSTYLE
END

Ahora, LINEPRICE (Sales) es la primera columna, PRODCAT (Product) es la segunda (tal como en el orden predeterminado) y SNAME (Store Name) es la tercera. El informe PDF es:


Principio de página

x
Cómo apilar columnas

En esta sección:

Cómo:

Puede apilar columnas en un informe para reducir el ancho de dicho informe o para comparar con facilidad los valores en un informe mediante la creación de una matriz. Para apilar las columnas puede usar:

La diferencia entre FOLD-LINE y OVER es que FOLD-LINE inicia la segunda línea (no la segunda columna) inmediatamente debajo de la primera, pero con una pequeña sangría. OVER apila unos sobre otros los valores de una columna, literalmente. Puede utilizar FOLD-LINE y OVER en la misma solicitud.



x
Sintaxis: Cómo Apilar columnas con FOLD-LINE
display_command fieldname ... FOLD-LINE fieldname ...

o

{ON|BY} fieldname FOLD-LINE

donde:

display_command

Es un comando de visualización. No hay cambio de posición alguno cuando una línea se dobla después de un campo de visualización.

fieldname

Es un campo de visualización o campo de clasificación colocado en una línea separada cuando cambia el valor del campo ON u OFF. Cuando se la dobla en un campo de clasificación, la línea se sale por dos espacios con relación a la línea anterior.

ON|BY

Es una frase de clasificación vertical. Ambos son sinónimos.



Ejemplo: Cómo apilar columnas con FOLD-LINE

A continuación se muestra cómo usar FOLD-LINE para reducir el ancho de su informe. En este ejemplo, las columnas se apilan cuando cambia el valor del campo de clasificación CATEGORY.

TABLE FILE GGSALES
SUM UNITS BUDUNITS
BY CATEGORY
ON CATEGORY FOLD-LINE
ON TABLE SET ONLINE-FMT PDF
ON TABLE SET PAGE-NUM OFF
END

El informe es:

Sin FOLD-LINE, el informe luce así:



x
Sintaxis: Cómo Apilar columnas con OVER
display_command fieldname1 OVER fieldname2 OVER fieldname3 ...

donde:

display_command

Es un comando de visualización.

fieldname1, fieldname2, fieldname3

Es un campo de visualización o valor calculado. No resulta válido un campo de texto.



Ejemplo: Cómo apilar columnas con OVER

Esta solicitud contiene una frase ACROSS en un informe HTML para clasificar horizontalmente por departamento. Usa dos frases OVER para apilar columnas.

TABLE FILE EMPLOYEE
SUM GROSS OVER DED_AMT OVER
COMPUTE NET/D8.2M = GROSS - DED_AMT; 
ACROSS DEPARTMENT
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLE *
TYPE=REPORT, GRID=OFF,$
ENDSTYLE
END

Con el uso de OVER, las columnas GROSS, DED_AMT y NET se apilan para mayor legibilidad:

Si no se usa OVER, el informe luce así:



x
Alineación de campos en informes usando OVER en la salida de informes PDF

Después de quedar colocadas en la salida del informe, las columnas se separan mediante espacios. Puede determinar el tamaño de estos espacios mediante los atributos de hoja de estilos LEFTGAP y RIGHTGAP.

Por defecto, los espacios entre las columnas quedan colocados fuera de los límites reservados a los campos, en la salida del informe. Por tanto, el valor de anchura o estrechez definido para un campo determina el tamaño del área de texto de ese valor de datos. No se cuenta el ancho de los espacios situados entre las columnas. El cuadro de límite empleado para definir los bordes y el color de fondo se determina en base al ancho de los datos, más los espacios izquierdo y derecho.

Los espacios situados fuera de los límites de la columna deben tenerse en cuenta a la hora de alinear campos en informes que utilizan la frase OVER.

Esta mejora, además de algunas otras en WebFOCUS Edición 7.6, Versión 11, está diseñada para ser compatible con el desarrollo de informes multifila utilizando nombres AS en blanco (títulos de columnas). A menos que se indique lo contrario, estas características funcionan con títulos que no estén en blanco, aunque su diseño no admite la alineación de títulos de columnas en blanco.

Por defecto, los títulos de las columnas se colocan a la izquierda de los valores de los campos, en informes que utilizan OVER. El título OVER y el valor OVER se miden en base a la combinación de tres parámetros, LEFTGAP, WIDTH y RIGHTGAP:

Con los nombres OVER y AS en blanco, cada valor de datos se convierte en una celda de datos que puede utilizarse para construir filas y columnas, dentro de las líneas de datos del informe. Si desea alinear los valores de datos en una línea inferior, con las columnas encima, debe calcular el ancho de las columnas en niveles inferiores para contar con el ancho de los datos situados sobre ellas, además del ancho de todos los espacios izquierdos y derechos situado entre medias.

El cálculo del tamaño asignado a cada columna al alinear datos y encabezados en informes que emplean OVER puede resultar complejo. Cada cálculo del tamaño de las columnas debe contar además con los espacios externos, izquierdos y derechos, puesto que estos se van acumulando según aumenta el número columnas en una fila determinada.

El atributo de hoja de estilos GAPINTERNAL=ON le permite colocar los espacios entre los límites de las columnas, en la salida de informes PDF. Esta característica facilita enormemente la alineación de campos y encabezados en los informes que usan la frase OVER para crear múltiples líneas.

Nota: OVER ahora se admite con SQUEEZE.



x
Sintaxis: Cómo Controlar la colocación de GAP en informes
TYPE=REPORT, GAPINTERNAL={OFF|ON}

donde:

OFF

Coloca los espacios izquierdo y derecho fuera del ancho de campo definido. OFF es el valor predeterminado.

ON

Coloca los espacios izquierdo y derecho dentro del ancho de campo definido.



Ejemplo: Cómo comparar los espacios externos e internos

Cuando GAPINTERNAL=OFF, tenga en cuenta la acumulación de espacios izquierdos y derechos, además del ancho de los campos, a la hora de definir el ancho de las columnas apiladas.

Cuando GAPINTERNAL=ON, el WIDTH definido representa el espacio completo usado por una determinada celda de datos o columna. Esto elimina el efecto acumulativo, puesto que los valores de OVER se encuentran en una fila.



Ejemplo: Cómo usar GAPINTERNAL en un informe

La siguiente solicitud emitida frente al origen de datos GGSALES coloca el campo PRODUCT sobre los campos UNITS y DOLLARS, y establece GAPINTERNAL en OFF:

SET LAYOUTGRID=ON
TABLE FILE GGSALES
"Product<+0>"
"Units<+0>Dollars"
SUM
PRODUCT AS ''
OVER
UNITS/D8C AS '' DOLLARS/D12.2CM AS ''
BY PRODUCT NOPRINT
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, SQUEEZE=ON, FONT=ARIAL, SIZE=8, LEFTMARGIN=1, TOPMARGIN=1,
 LEFTGAP=.1, RIGHTGAP=.1, GAPINTERNAL=OFF, $
TYPE=REPORT, BORDER=ON, $
TYPE=HEADING, BORDERALL=ON, $
TYPE=HEADING, LINE=1, ITEM=1, POSITION = PRODUCT, $
TYPE=HEADING, LINE=2, ITEM=1, POSITION = UNITS, $
TYPE=HEADING, LINE=2, ITEM=2, POSITION = DOLLARS, $
TYPE=REPORT, COLUMN=PRODUCT(2),   SQUEEZE=2,  $
TYPE=REPORT, COLUMN=UNITS, SQUEEZE=1, $
TYPE=REPORT, COLUMN=DOLLARS, SQUEEZE=1, $
END

El ancho especificado para UNITS y DOLLARS es de una pulgada, mientras que el campo PRODUCT es de dos pulgadas. Cuando GAPINTERNAL=OFF, LAYOUTGRID muestra que el ancho empleado para colocar las columnas es superior al ancho especificado en la solicitud. El espacio adicional representado por los espacios externos, izquierdo y derecho, tiene en cuenta este efecto:

Los bordes del encabezado están alineados a la derecha del informe debido al atributo SQUEEZE=ON en la hoja de estilos. Se ha añadido espacio adicional al informe para alinear los encabezados. Si modifica la declaración de la hoja de estilos del campo PRODUCTS a JUSTIFY=RIGHT, apreciará cómo el espacio adicional evita que el valor del producto se alinee con el valor en dólares:

Si cambia la declaración de hoja de estilos a GAPINTERNAL=ON, hace que se emplee el ancho especificado ya que los espacios son internos y están incluidos en los valores especificados:

La siguiente salida de informe demuestra que los valores se alinean correctamente, incluso cuando los valores de PRODUCT se han definido con JUSTIFY=RIGHT:


Principio de página

x
Cómo posicionar una columna

Cómo:

Puede especificar el punto de inicio absoluto o relativo de una columna en un informe. La posición de inicio relativa es el número de caracteres que se encuentra a la derecha de la ultima columna.

Cuando use esta característica con un informe HTML, establezca el parámetro STYLEMODE en FIXED.



x
Sintaxis: Cómo Posicionar una columna
field IN {n|+n}

donde:

campo

Es la columna que se está ubicando

n

Es un número que indica la posición absoluta de la columna.

Cuando se usa con ACROSS, n especifica la posición inicial del conjunto ACROSS.

Cuando se usa con FOLD-LINE u OVER, n se aplica a la línea en que se encuentra el campo de referencia.

+n

Es un número que indica la posición relativa de la columna. El valor de n es el número de caracteres a la derecha de la última columna.



Ejemplo: Cómo posicionar columnas

Esta solicitud especifica la ubicación absoluta de las tres columnas del informe. Se requiere el parámetro ON TABLE SET STYLEMODE FIXED para HTML.

TABLE FILE CENTQA 
SUM CNT.PROBNUM IN 1 AS 'Total #,Problems' 
SUM CNT.PROBNUM IN 45 AS '# Problems,by Product'
BY PLANT NOPRINT BY PRODNAME IN 15 
WHERE PLANT EQ 'ORL'
ON TABLE SET PAGE-NUM OFF 
ON TABLE SET STYLEMODE FIXED 
END

Las columnas se espacian para aumentar la legibilidad:



Ejemplo: Cómo posicionar columnas de clasificación horizontal (ACROSS)

Esta solicitud emplea la frase IN con el campo de clasificación horizontal PLAN para especificar la posición inicial de la columna. También usa posicionamiento relativo para añadir espacios adicionales entre las columnas PROBNUM. Se requiere el parámetro ON TABLE SET STYLEMODE FIXED para informes HTML.

TABLE FILE CENTQA 
SUM PROBNUM IN +8
ACROSS PLANT IN 35 
BY PROBLEM_CATEGORY
WHERE PLANT EQ 'BOS' OR 'ORL'
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLEMODE FIXED
END

El conjunto ACROSS empieza en la columna 35 y hay ocho espacios adicionales entre las columnas de datos en el ACROSS:



Ejemplo: Cómo apilar columnas (OVER)

La siguiente solicitud usa OVER para apilar columnas e IN para ubicarlas.

TABLE FILE EMPLOYEE 
SUM GROSS IN 40
OVER DED_AMT IN 40 
BY DEPARTMENT BY LAST_NAME IN 20 
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLEMODE FIXED
END

En el informe, GROSS y DED_AMT están apiladas a partir de la columna 40. LAST_NAME empieza en la columna 20.


WebFOCUS