Cómo: |
Para un resultado en HTML (y para resultado de Excel 2000 que utiliza el alineamiento HTML), puede posicionar elementos de texto y de campo en encabezados y pies utilizando las opciones HEADALIGN. Estas opciones funcionan dentro de las limitaciones de HTML y las tecnologías de navegador para proporcionar un grado significativo de flexibilidad de formato. HEADALIGN funciona de la manera siguiente.
En la salida PDF, puede usar la opción HEADALIGN=BODY para alinear los elementos de encabezado y pie con el cuerpo del informe.
En la salida HTML o Excel 2000, cuando HEADALING se encuentra establecido en BODY o INTERNAL, la salida queda desplegada como una tabla HTML, es decir, que el navegador determina el ancho de las columnas y limita la posición precisa de los elementos. Una regla básica regula la ubicación de elementos de encabezado o de pie: Cada elemento (campo de texto o incluido) se coloca en secuencia dentro de la próxima celda de tabla HTML (<TD>). Cuando se establece HEADALIGN al predeterminado NONE, todos los elementos en el encabezado o pie se unen juntamente, dentro de una celda sencilla. El navegador estira la tabla de encabezado y la tabla de informe para acomodar la longitud del texto.
Puede ejercitar control sobre la ubicación de elementos al anular lo predeterminado y al elegir ya sea BODY o INTERNAL:
Para comparar el resultado de resultado, consulte Cómo comparar el resultado generado con opciones HEADALIGN.
Para partir la cadena de texto en varias partes y manipular las columnas, use los marcadores de posición <+0> en la solicitud. Para obtener información detallada, consulte Cómo identificar un componente de informe en una hoja de estilo de WebFOCUS.
Puede utilizar opciones HEADALIGN juntamente con el atributo COLSPAN. COLSPAN permite que los elementos de encabezado crucen columnas de tabla múltiple, de esa manera proporcionando flexibilidad adicional sobre cómo puede diseñar sus encabezados. Para detalles, consulte Cómo alinear un elemento de ´encabezado o pie en un informe HTML, XLSX, EXL2K o PDF.
Si hay más de un tipo de encabezado o pie en un informe, puede alinear cualquier elemento individualmente dentro de cada uno de ellos utilizando esta sintaxis.
Sugerencia: Para obtener un resumen de otros métodos de alineación, vaya a Cómo elegir un método de ajuste de la alineación para elementos de un encabezado o pie de página.
TYPE = {REPORT|headfoot}, HEADALIGN = option, $
donde:
NONE, que coloca los elementos de encabezado en una tabla HTML insertada en la tabla principal (cuerpo) y encadena, en una celda individual de la tabla insertada, todos los elementos de encabezado (texto y campos) en una línea. En informes PDF, esta opción usa la alineación predeterminada del encabezado. NONE es el valor predeterminado.
INTERNAL coloca los elementos de encabezado en una tabla HTML propia, con cada elemento en una celda por separado. Esto permite que los elementos de encabezado se alineen verticalmente unos con otros, independientemente de las columnas de datos. Las longitudes de los elementos de encabezado no afectan las longitudes de las columnas de informe y viceversa.
Nota: HEADALIGN=INTERNAL no está permitido en informes PDF.
BODY, que alinea los elementos de encabezado con las columnas de datos. En la salida HTML, esto coloca los elementos en las celdas de la misma tabla HTML que el cuerpo del informe. Dado que tienen la misma longitud de columna, los elementos en el encabezado y los datos en el cuerpo del informe se alinean naturalmente. En la salida PDF, esto alinea los elementos de encabezado o pie con las columnas de datos.
Nota: HEADALIGN=BODY no admite la división en paneles.
Para información relacionada, consulte Cómo comparar el resultado generado con opciones HEADALIGN. Puede combinar las opciones HEADALIGN con el atributo COLSPAN para permitir que los elementos de encabezado crucen las columnas de tabla HTML múltiples. Para detalles, consulte Cómo alinear un elemento de ´encabezado o pie en un informe HTML, XLSX, EXL2K o PDF.
Para información relacionada, consulte Cómo comparar el resultado generado con opciones HEADALIGN. Puede combinar las opciones HEADALIGN con el atributo COLSPAN para permitir que los elementos de encabezado crucen las columnas de tabla HTML múltiples. Para detalles, consulte Cómo alinear un elemento de ´encabezado o pie en un informe HTML, XLSX, EXL2K o PDF.
En la siguiente solicitud emitida frente al origen de datos GGORDER, el subpie tiene un objeto de texto ("Total") y un objeto de campo (ST.QUANTITY). El subpie alinea los elementos con sus columnas de informe mediante TYPE=SUBFOOT, HEADALIGN=BODY ,$. El objeto de texto se coloca en la segunda columna del informe usando el marcador de posición <+0, mientras que el objeto de campo lo hace en la tercera columna, mediante otro marcador de posición <+0. A continuación, se realiza una alineación izquierda (predeterminada) del elemento de texto y su columna de informe. El objeto de campo queda alineado a la derecha con su columna de informe.
TABLE FILE GGORDER PRINT QUANTITY ORDER_NUMBER ORDER_DATE STORE_CODE BY PRODUCT_CODE BY PRODUCT_DESCRIPTION WHERE ORDER_DATE EQ '01/01/96' WHERE STORE_CODE EQ 'R1019' ON PRODUCT_CODE SUBFOOT " <+0 Total: <+0 <ST.QUANTITY" ON TABLE SET PAGE-NUM OFF ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLESHEET * TYPE = SUBFOOT,HEADALIGN=BODY, $ TYPE = SUBFOOT,OBJECT=TEXT,STYLE = BOLD, $ TYPE = SUBFOOT,OBJECT=FIELD,JUSTIFY=RIGHT,STYLE = BOLD, $ ENDSTYLE END
La salida muestra que el texto Total está alineado con los nombres de producto y el objeto del campo de subtotal, alineado a la derecha con la columna Unidades pedidas.
Al alinear los elementos de encabezado con la línea de datos por medio de HEADALIGN=BODY, la primera línea de campos actúa como la fila de anclaje de los datos. Cada línea de encabezado contiene el número de columnas presentado en la fila de anclaje de los datos. No se presenta ninguna otra columna adicional que pueda aparecer en otras líneas de datos. Si la primera línea de datos contiene menos celdas de valores de datos que las otras filas de datos, no podrá añadir columnas de alineación a los encabezados, para estas columnas adicionales.
En el ejemplo siguiente, la primera fila (la fila de anclaje de datos) contiene un solo valor. No se muestran los elementos colocados en encabezados, correspondientes a la columna dos que aparece en las filas posteriores.
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, LEFTGAP=.1, RIGHTGAP=.1, GAPINTERNAL=ON, LEFTMARGIN=1,$ TYPE=REPORT, BORDER=ON, $ TYPE=HEADING, BORDERALL=ON, HEADALIGN=BODY, $ TYPE=HEADING, LINE=1, ITEM=1, COLSPAN=2, WIDTH=2, JUSTIFY=LEFT, $ TYPE=HEADING, LINE=2, ITEM=1, WIDTH=1, JUSTIFY=LEFT, $ TYPE=HEADING, LINE=2, ITEM=2, WIDTH=1, JUSTIFY=LEFT, $ TYPE=REPORT, COLUMN=PRODUCT(2), SQUEEZE=2, $ TYPE=REPORT, COLUMN=UNITS, SQUEEZE=1, $ TYPE=REPORT, COLUMN=DOLLARS, SQUEEZE=1, $ END
La salida muestra que las líneas de encabezado cuentan con una columna cada una, mientras que las líneas de datos tienen una o dos columnas.
Las solicitudes que siguen ilustran las diferencias en alineamiento con cada ajuste HEADALIGN. Las líneas de cuadrículas se exponen en el resultado para ayudarle a distinguir la tabla HTML generada por el cuerpo del informe de las tablas HTML incluidas generadas por el encabezado en algunas variaciones.
Todos los ajustes HEADALIGN son compatibles con la sintaxis COLSPAN, que permite que los elementos de encabezado crucen múltiples columnas.
TABLE FILE CAR SUM SALES BY COUNTRY BY CAR BY MODEL ON COUNTRY SUBHEAD "This is my subhead" " " "Country is:<COUNTRY Car is:<CAR" "Model is:<MODEL" IF COUNTRY EQ 'ENGLAND' ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLESHEET * TYPE=SUBHEAD, HEADALIGN=OPTION, $ TYPE=SUBHEAD, LINE=1, ITEM=1, COLSPAN=4, JUSTIFY=CENTER, $ ENDSTYLE END
HEADALIGN=NONE, sin la segunda declaración TYPE=SUBHEAD en la sintaxis de la solicitud, genera una tabla independiente con la alineación izquierda, predeterminada. El texto y los campos en cada línea de encabezado se unen juntos en una celda de tabla HTML sencilla.
TYPE=SUBHEAD, HEADALIGN=NONE, $
HEADALIGN=NONE con COLSPAN
TYPE=SUBHEAD, HEADALIGN=NONE, $ TYPE=SUBHEAD, LINE=1, ITEM=1, COLSPAN=4, JUSTIFY=CENTER, $
La primera línea se centra a través de todas las cuatro columnas de la tabla interna, basado en la configuración COLSPAN=4.
HEADALIGN=INTERNAL crea una tabla HTML separada. Las columnas se generan en base al número de elementos (texto y campos) del encabezado. Cada elemento se coloca en una celda independiente. Estas columnas no corresponden a las columnas en la tabla HTML para la sección principal del informe.
TYPE=SUBHEAD, HEADALIGN=INTERNAL, $
El país queda alineado con Modelo en la primera columna de la tabla interna. El valor de <COUNTRY se alinea con el valor de <MODEL en la segunda columna.
HEADALIGN=INTERNAL con COLSPAN
TYPE=SUBHEAD, HEADALIGN=INTERNAL, $ TYPE=SUBHEAD, LINE=1, ITEM=1, COLSPAN=4, JUSTIFY=CENTER, $
La primera línea se centra a través de todas las cuatro columnas de la tabla interna, basado en la configuración COLSPAN=4.
HEADALIGN=BODY coloca las líneas de encabezado dentro de las celdas de la tabla HTML principal. Como resultado, las columnas del encabezado se corresponden con las columnas de la tabla principal.
TYPE=SUBHEAD, HEADALIGN=BODY, $
Country se alinea con Model en la primera columna de la tabla HTML principal. El valor de <COUNTRY se alinea con el valor de <MODEL en la segunda columna.
HEADALIGN=BODY with COLSPAN
TYPE=SUBHEAD, HEADALIGN=BODY, $ TYPE=SUBHEAD, LINE=1, ITEM=1, COLSPAN=4, JUSTIFY=CENTER, $
COLSPAN controla el alineamiento de columna cruzada de la primera fila del encabezado.
Esta solicitud genera un informe HTML que utiliza HEADALIGN = BODY para alinear los dos elementos de la orden de pie (TOTAL IS y el valor) con cada una de las columnas (Producto y Unidades pedidas). JUSTIFY = RIGHT, que aplica a la orden de pie entera, justifica a la derecha cada elemento de orden de pie debajo de la columna de datos.
TABLE FILE GGORDER PRINT QUANTITY BY PRODUCT_CODE NOPRINT BY PRODUCT_DESCRIPTION WHERE ORDER_DATE EQ '01/01/96' WHERE STORE_CODE EQ 'R1019' ON PRODUCT_CODE SUBFOOT "TOTAL IS: <ST.QUANTITY" ON TABLE SET PAGE-NUM OFF ON TABLE SET ONLINE-FMT HTML ON TABLE SET STYLESHEET * TYPE = REPORT, GRID = OFF, $ TYPE = SUBFOOT, HEADALIGN = BODY, JUSTIFY = RIGHT, $ TYPE = SUBFOOT, OBJECT = FIELD, STYLE = BOLD, $ ENDSTYLE END
El resultado parcial es:
Esta solicitud genera una tabla HTML incluida para un encabezado de página, dentro de la tabla HTML que gobierna el alineamiento en el cuerpo del informe. Esta tabla tiene tres filas y tres columnas para acomodar todos los elementos del encabezado.
En la primera línea del encabezado, un marcador de posición (<+0>) genera dos elementos de texto: el primer elemento está en blanco y el segundo elemento es Gotham Grinds, Inc. En el resultado, el segundo elemento aparece en la segunda celda de la primera fila de la tabla incluida. Para información relacionada, consulte Cómo identificar un componente de informe en una hoja de estilo de WebFOCUS.
La segunda y cuarta línea del encabezado están en blanco.
El marcador de posición en la tercera línea del encabezado lo dividen en tres elementos de texto: Informe de pedidos, en blanco, Ejecutar en: &DATE. En el resultado, cada elemento aparece en una celda en la tercera fila de una tabla HTML incluida, en la orden especificada en la solicitud.
TABLE FILE GGORDER HEADING " <+0>Gotham Grinds, Inc." " " "Orders Report <+0> <+0> Run on: &DATE" " " PRINT ORDER_NUMBER ORDER_DATE STORE_CODE QUANTITY BY PRODUCT_CODE BY PRODUCT_DESCRIPTION IF RECORDLIMIT EQ 10 ON TABLE SET PAGE-NUM OFF ON TABLE SET ONLINE-FMT HTML ON TABLE SET STYLESHEET * TYPE = REPORT, GRID = ON, $ TYPE = HEADING, HEADALIGN = INTERNAL, STYLE = BOLD, $ ENDSTYLE END
GRID=ON en la solicitud le permite ver la tabla HTML incluida para el encabezado y la tabla HTML principal para el cuerpo del informe.
La salida es:
Note que la posición se mantiene cuando la cuadrícula está oculta (apagada).
Este ejemplo usa un archivo máster y el procedimiento MODIFY creado en Cómo incluir un campo de texto en un pie de clasificación. Ejecute el ejemplo nuevamente y vuelva aquí para alinear el campo de texto.
La solicitud utiliza HEADALIGN=BODY para alinear las líneas de campo de texto en un pie de orden. Esta configuración hace que cada elemento del encabezado quede alineada con una columna en la tabla HTML principal, generada para el informe: el primer elemento (el texto Descripción del curso:) se alinea con la primera columna de datos, CATALOG. El campo insertado se alinea en una segunda columna. En este ejemplo la cuadrícula está activada para que el alineamiento sea más fácil de ver.
TABLE FILE TXTFLD BY CATALOG SUBFOOT "Course Description: <TEXTFLD" ON TABLE SET PAGE-NUM OFF ON TABLE SET ONLINE-FMT HTML ON TABLE SET STYLESHEET * TYPE = REPORT, GRID = ON, $ TYPE = SUBFOOT, HEADALIGN = BODY, $ ENDSTYLE END
El resultado muestra un valor nuevo para el campo de texto cada vez que el valor CATALOG cambia.
Este ejemplo usa un archivo máster y el procedimiento MODIFY creado en Cómo incluir un campo de texto en un pie de clasificación. Ejecute el ejemplo nuevamente y vuelva aquí para alinear el campo de texto. Esta solicitud le aplica el tipo de negrita a la segunda línea de una orden de pie de múltiples líneas, que incluye el texto Descripción de curso también como el texto del campo TEXTFLD. Línea 1 del orden de pie es el texto Curso de noche.
TABLE FILE TXTFLD BY DESCRIPTION AS 'CATALOG' SUBFOOT "Evening Course" "Course Description: <TEXTFLD" ON TABLE SET PAGE-NUM OFF ON TABLE SET ONLINE-FMT HTML ON TABLE SET STYLESHEET * TYPE = REPORT, GRID = OFF, $ TYPE = SUBFOOT, HEADALIGN = BODY, $ TYPE = SUBFOOT, LINE = 2, STYLE = BOLD, $ ENDSTYLE END
La salida es:
Si al contrario la hoja de estilo identifica el campo de texto como un objeto para estilizar
TYPE = SUBFOOT, HEADALIGN = BODY, $ TYPE = SUBFOOT, LINE = 2, OBJECT = FIELD, STYLE = BOLD, $
entonces el único texto en TEXTFLD está en negrita.
WebFOCUS |