En esta sección: |
Puede aplicar un formato condicional a componentes de informes, mostrar un gráfico e incluir enlaces en su informe basados en los valores de su informe. Cuando usa rasgos de estilo condicionales puede:
Para dar un formato condicional a sus informes, agregue el atributo WHEN a la declaración de hoja de estilos. El atributo WHEN especifica una condición que se evalúa en cada ocurrencia de un componente de informe (es decir, en cada celda de una columna de informe tabular, cada elemento en un gráfico o cada página de informe de formato libre). La declaración de hoja de estilos se aplica a cada ocurrencia que satisfaga dicha condición y es ignorada en cada ocurrencia que no satisfaga dicha condición.
También puede aplicar formato condicional en secuencia.
Nota: No se puede utilizar las variables TABPAGENO y TABLASTPAGE para definir el estilo con estilo condicional (WHEN).
Cómo: |
Puede aplicar la lógica condicional en secuencia a un componente de informe mediante la creación de una serie de declaraciones, cada una con una condición diferente. Este es el equivalente, en las hojas de estilos, de una secuencia de oraciones IF-THEN-ELSE anidadas. Cuando algunas declaraciones condicionales especifiquen el mismo componente de informe (por ejemplo, la misma columna) y evalúen el mismo campo en esa condición, serán procesados todos juntos, como grupo. En cada ocurrencia del componente del informe (por ejemplo, en cada celda de una columna):
Para ver un ejemplo de esto, vaya a Cómo utilizar formato condicional en secuencia .
TYPE=type, [subtype,] attributes, WHEN=field1 operator {field2|value},$
o
TYPE=type, [subtype,] attributes, WHEN=FORECAST, $
donde:
Es el valor del atributo TYPE. Puede especificar cualquier componente de informe. Para obtener información detallada, consulte Cómo identificar un componente de informe en una hoja de estilo de WebFOCUS.
Se refiere a cualquier otro atributo adicional, como COLUMN, ACROSS o ITEM, que se necesita para identificar el componente de informe al que se le aplica la declaración.
Son los atributos en la declaración de hoja de estilos que se convierten en condicionales mediante el atributo WHEN. Pueden incluir a la mayoría de los atributos de formato, imágenes gráficas e hipervínculos.
Identifican los campos del informe que se comparan. Cada uno puede ser:
Si desea utilizar un campo que no quiere que aparezca en el informe)., puede especificar el campo en la solicitud de informe y utilizar la opción NOPRINT para evitar que el campo aparezca (por ejemplo, PRINT fieldname NOPRINT).
Para aplicar un operador de prefijo a un campo en un informe, puede:
El campo no puede ser un campo numérico empaquetado (P).
Define cómo se satisface la condición. Puede utilizar estos operadores relacionales
EQ donde la condición se satisface si los valores a la izquierda y a la derecha son iguales. Si los valores comparados son alfanuméricos, deben coincidir en cuanto a si están en mayúscula, minúscula o en estilo mixto.
NE donde la condición se satisface si los valores a la izquierda y a la derecha no son iguales.
LT donde la condición se satisface si el valor a la izquierda es menor que el valor a la derecha.
LE donde la condición se satisface si el valor a la izquierda es menor o igual al valor a la derecha.
GT donde la condición se satisface si el valor a la izquierda es mayor que el valor a la derecha.
GE donde la condición se satisface si el valor a la izquierda es mayor o igual al valor a la derecha.
Es una constante, como un número, cadena de caracteres o fecha. Debe poner las constantes no numéricas, tales como cadenas de caracteres y fechas, entre comillas simples.
Aunque aquí no se pueden usar funciones ni operadores para especificar el valor, puede definir un campo temporal (COMPUTE o DEFINE) mediante funciones y operadores, usar el campo temporal en el informe o especificarlo aquí en vez de una constante.
Identifica campos producidos usando el comando FORECAST.
Este ejemplo muestra cómo aplicar formato condicional en secuencia a un informe. Este informe usa lógica condicional en secuencia para dar formato a cada fila basada en su total de pedidos (LISTPRICE).
TABLE FILE CENTORD
HEADING
"Order Revenue"
" "
SUM ORDER_DATE LINEPRICE AS 'Order,Total:'
BY HIGHEST 10 ORDER_NUM
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
1. TYPE=DATA, BACKCOLOR=AQUA, STYLE=BOLD+ITALIC,
WHEN=LINEPRICE GT 500000, $
2. TYPE=DATA, BACKCOLOR=YELLOW, STYLE=BOLD,
WHEN=LINEPRICE GT 400000, $
3. TYPE=DATA, BACKCOLOR=ORANGE, STYLE=ITALIC,
WHEN=LINEPRICE GT 100000, $
4. TYPE=DATA, BACKCOLOR=SILVER, FONT='Arial', $
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
Tenga en cuenta que:
La salida es:
Este ejemplo muestra cómo aplicar formato condicional a un informe. El formato condicional destaca los pedidos cuyo total sea superior a 200,000.
Tenga en cuenta que, dado que no se ha especificado una columna concreta de la declaración, el formato se aplica a toda la fila.
TABLE FILE CENTORD
HEADING
"Order Revenue"
" "
SUM ORDER_DATE LINEPRICE AS 'Order,Total:'
BY HIGHEST 10 ORDER_NUM
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
TYPE=DATA, BACKCOLOR=AQUA, STYLE=BOLD, WHEN=LINEPRICE GT 200000, $
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
La salida es:
Este ejemplo muestra cómo puede utilizar formato condicional para destacar columnas que no han sido especificadas en la condición. La condición WHEN establece que el número de pedido de los pedidos que superen los 200,000 debe aparecer en negrita, con un fondo aqua.
Note que la columna que se evalúa en la condición WHEN (LINEPRICE) es diferente de la columna con formato (ORDER_NUM); no tienen que ser iguales.
TABLE FILE CENTORD
HEADING
"Order Revenue"
" "
SUM ORDER_DATE LINEPRICE AS 'Order,Total:'
BY HIGHEST 10 ORDER_NUM
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
TYPE=DATA, COLUMN=ORDER_NUM,
BACKCOLOR=AQUA, STYLE=BOLD, WHEN=LINEPRICE GT 200000, $
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
La salida es:
El siguiente ejemplo demuestra cómo hacer referencia a un valor de ACROSS, mediante el nombre del campo ACROSS o el designador de columnas de ACROSS (A1, A2).
En este ejemplo, los valores de ACROSS se utilizan con un estilo condicional, para establecer un color de fondo único en todas las columnas de ACROSS de la categoría Coffee, y un estilo de fuente adicional para la columna ACROSS Espresso.
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 PDF 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,$ TYPE=DATA, ACROSSCOLUMN=DOLLARS, BACKCOLOR=THISTLE, WHEN=CATEGORY EQ 'Coffee',$ TYPE=DATA, ACROSSCOLUMN=DOLLARS, STYLE=BOLD+ITALIC, WHEN=A2 EQ 'Espresso', $ ENDSTYLE END
La salida es:
Este ejemplo muestra cómo aplicar formato condicional a un gráfico de barras de visualización de datos. Esta solicitud de informe incorpora un gráfico de visualización de datos para representar gráficamente los datos en la columna LINEPRICE. Usa el formato condicional para destacar los pedidos con un total superior a 200,000. Aplica condicionalmente dicho formato tanto a las columnas de datos (TYPE=DATA) como al gráfico de barras (GRAPHTYPE=DATA).
Fíjese que la visualización de datos se admite sólo para informes HTML.
TABLE FILE CENTORD HEADING "Order Revenue" " " SUM ORDER_DATE LINEPRICE AS 'Order,Total:' BY HIGHEST 10 ORDER_NUM ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLESHEET * TYPE=REPORT, GRID=OFF, $ TYPE=DATA, BACKCOLOR=AQUA, STYLE=BOLD, WHEN=LINEPRICE GT 200000, $ GRAPHTYPE=DATA, COLUMN=LINEPRICE, $ GRAPHTYPE=DATA, GRAPHCOLOR=AQUA, WHEN=LINEPRICE GT 200000,$ TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $ ENDSTYLE END
La salida es:
Este ejemplo muestra cómo aplicar un formato condicional basado en valores de un campo oculto (NOPRINT). Este informe usa el formato condicional para destacar a los empleados que se han dado de baja.
Tenga en cuenta que la condición de atributo WHEN evalúa un campo (STATUS) oculto en el informe. Aunque el campo que se evalúa en la condición debe incluirse en la solicitud del informe, puede evitar que aparezca en el informe usando la opción NOPRINT, tal como se muestra en la siguiente solicitud.
TABLE FILE CENTHR HEADING "Employee List for Boston" " " "For Pay Levels 5+" " " "Resigned Employees Shown in <0>Red Bold" " " PRINT LNAME FNAME PAYSCALE STATUS NOPRINT BY ID_NUM WHERE PLANT EQ 'BOS' AND PAYSCALE GE 5 ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLESHEET * TYPE=REPORT, GRID=OFF, $ TYPE=DATA, COLUMN=LNAME, COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED', $ TYPE=DATA, COLUMN=FNAME, COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED', $ TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $ TYPE=HEADING, LINE=5, STYLE=-BOLD, $ TYPE=HEADING, LINE=5, ITEM=2, STYLE=BOLD, COLOR=RED, $ ENDSTYLE END
La salida es:
Este ejemplo muestra cómo aplicar formato a un grupo de clasificación. Este informe usa el formato condicional para destacar a los empleados que han renunciado.
Tenga en cuenta que una declaración condicional puede dar formato a todas las filas de grupo de clasificación. Para ello, evalúe el campo de clasificación (STATUS) en la condición WHEN.
TABLE FILE CENTHR
HEADING
"Employee List for Boston"
" "
"For Pay Levels 5+"
" "
PRINT LNAME FNAME PAYSCALE
BY STATUS SKIP-LINE
WHERE PLANT EQ 'BOS' AND PAYSCALE GE 5
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
TYPE=DATA,
COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED',$
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
La salida es:
Para aplicar el mismo formato condicional a sólo dos columnas en vez de a todas las columnas, esta versión de la solicitud de informe usa dos declaraciones, donde cada una especifica una columna diferente (LNAME y FNAME):
TABLE FILE CENTHR
HEADING
"Employee List for Boston"
" "
"Pay Levels 5+"
" "
PRINT LNAME FNAME PAYSCALE
BY STATUS SKIP-LINE
WHERE PLANT EQ 'BOS' AND PAYSCALE GE 5
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
TYPE=DATA, COLUMN=LNAME,
COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED', $
TYPE=DATA, COLUMN=FNAME,
COLOR=RED, FONT='Arial', STYLE=BOLD, WHEN=STATUS EQ 'RESIGNED', $
TYPE=HEADING, FONT='Arial', STYLE=BOLD, SIZE=11, $
ENDSTYLE
END
La salida es:
A continuación se muestra cómo aplicar formato condicional a valores pronosticados en un informe.
DEFINE FILE GGSALES SDATE/YYM = DATE; SYEAR/Y = SDATE; SMONTH/M = SDATE; PERIOD/I2 = SMONTH; END TABLE FILE GGSALES SUM UNITS DOLLARS BY CATEGORY BY PERIOD WHERE SYEAR EQ 97 AND CATEGORY EQ 'Coffee' ON PERIOD RECAP MOVAVE/D10.1= FORECAST(DOLLARS,1,3,'MOVAVE',3); ON TABLE SET PAGE-NUM OFF ON TABLE SET STYLE * TYPE=REPORT, GRID=OFF, $ TYPE=REPORT, BACKCOLOR=SILVER, WHEN=FORECAST, $ END
La salida es:
WebFOCUS |