Dans cette section : |
Vous pouvez, sous condition, formater des composants de rapport, afficher un graphique et inclure des liens dans votre rapport selon ses valeurs. A l'aide de la conception conditionnelle, vous pouvez :
Pour formater un rapport sous condition, ajoutez l'attribut WHEN à une déclaration de feuille de style. L'attribut WHEN spécifie une condition qui est évlauée pour chaque instance d'un composant de rapport, c'est-à-dire chaque cellule d'une colonne de rapport tabulaire, chaque élément d'un graphique ou chaque page d'un rapport au format libre. La déclaration de feuille de style est appliquée à toute instance qui satisfait à la condition, et est ignorée par toute instance qui ne lui satisfait pas.
Vous pouvez aussi appliquer le formatage conditionnel séquentiel.
Renarque : Les variables TABPAGENO et TABLASTPAGE ne peuvent être utilisées pour définir la mise en forme avec style conditionnel (WHEN).
Comment : |
Vous pouvez appliquer de la logique conditionnelle séquentielle à un composant de rapport en créant une série de déclarations, chacune avec une condition différente. Cela est l'équivalent d'une séquence de déclarations imbriquées « IF-THEN-ELSE ». Lorsque plusieurs déclarations conditionnelles spécifient le même composant de rapport (par exemple, la même colonne) et qu'elles évaluent le même champ dans la condition, elles sont traitées ensemble en tant que groupe. Pour chaque instance du composant de rapport (par exemple, pour chaque cellule d'une colonne) :
Pour en voir un exemple, consultez Utilisation du formatage conditionnel séquentiel.
TYPE=type, [subtype,] attributes, WHEN=field1 operator {field2|value},$
ou
TYPE=type, [subtype,] attributes, WHEN=FORECAST, $
où :
Est la valeur de l’attribut TYPE Vous pouvez spécifier tout composant de rapport. Pour plus d'informations, consultez Désignation de composants de rapport dans la syntaxe de feuille de style WebFOCUS.
Sont tous les attributs supplémentaires, tels que COLUMN, LINE ou ITEM, nécessaires pour identifier le composant de rapport auquel vous appliquez la déclaration.
Sont les attributs dans la déclaration de feuille de style que l'attribut WHEN rend conditionnels. Ces attributs comprennent le formatage, les images graphiques et hyperliens.
Identifie les champs de rapport que l'on compare. Chaque champ peut être :
Si vous souhaitez utiliser un champ que vous ne voulez pas afficher dans le rapport, vous pouvez spécifier le champ dans la requête de rapport, et utiliser l'option NOPRINT pour supprimer l'affichage du champ (par exemple, PRINT fieldname NOPRINT).
Pour appliquer un opératuer préfixe à un champ dans un rapport, vous povuez :
Le champ ne peut pas être un champ numérique condensé.
Définit la façon de satisfaire la condition. Vous pouvez utiliser ces opérateurs relationels :
EQ où la condition est satisfaite si les valeurs sur la gauche et sur la droite sont égales. Si les valeurs comparées sont alphanumériques, leurs casses (majuscule, miniscule ou casse-mixte) doivent se correspondre.
NE où la condition est satisfaite si les valeurs sur la gauche et sur la droite ne sont pas égales.
LT où la condition est satisfaite si la valeur sur la gauche est inférieure à celle sur la droite.
LE où la condition est satisfaite si la valeur sur la gauche est inférieure ou égale à celle sur la droite.
GT où la condition est satisfaite si la valeur sur la gauche est supérieure à celle sur la droite.
GE où la condition est satisfaite si la valeur sur la gauche est supérieure ou égale à celle sur la droite.
Est une constante, telle qu'un numéro, une chaîne de caractères, ou une date. Vous devez mettre les constantes non-numériques, telles que les chaînes de caractères et les dates, entre guillemets simples.
Bien que vous ne puissiez pas utiliser les fonctions ou opérateurs dans ce cas pour spécifier la valeur, vous pouvez : définir un champ temporaire (COMPUTE ou DEFINE) en utilisant les fonctions et opérateurs, utiliser le champ temporaire dans le rapport et le spécifier dans cette instance au lieu d'une constante.
Identifie les champs générés utilisant la commande FORECAST.
Cet exemple illustre la façon d'appliquer le formatage conditionnel séquentiel à un rapport. Ce rapport utilise la logique conditionnelle séquentielle pour formater chaque ligne selon son total de commandes (LINEPRICE).
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
Notez que:
La sortie est :
Cet exemple illustre la façon d'appliquer le formatage conditionnel à un rapport. Le formatage conditionnel met en évidence les totaux de commandes supérieurs à 200 000.
Remarquez que le formatage s'applique à la ligne entière, car une colonne particulière n'est pas spécifiée dans la déclaration.
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 sortie est :
Cet exemple illustre la façon d'utiliser le formatage conditionnel pour mettre en évidence les colonnes non-spécifiées dans la condition. La condition WHEN indique que le numéro des commandes dont le total dépasse 200 000 doit s'afficher en gras avec un arrière-plan de bleu-vert.
Notez que la colonne évaluée dans la condition WHEN (LINEPRICE) est différente que celle qui est formatée (ORDER_NUM) ; elles ne doivent pas être semblables.
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 sortie est :
L'exemple ci-dessous démontre comment une valeur ACROSS peut être référencée avec le nom de champ ACROSS ou l'indicateur de colonnes ACROSS (A1, A2).
Dans cette exemple, les valeurs ACROSS sont utilisées avec le style conditionnel pour définir une couleur d'arrière-plan pour toutes les colonnes ACROSS dans la catégorie Coffee, et un style de police supplémentaire pour la colonne Expresso ACROSS.
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 sortie est :
Cet exemple illustre la façon d'appliquer le formatage conditionnel à un graphique à barres de visualisation de données. Cette requête de rapport incorpore un graphique à barres de visualisation de données afin de représenter graphiquement les données dans la colonne LINEPRICE. Elle emploie le formatage conditionnel afin de mettre en évidence les commandes dont le total dépasse 200 000. Elle applique, sous condition, le formatage aux colonnes de données (TYPE=DATA) et au graphique à barres (GRAPHTYPE=DATA).
Remarquez que la visualisation de données n'est supportée que pour les rapports 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 sortie est :
Cet exemple illustre la façon d'appliquer le formatage conditionnel en fonction des valeurs d'un champ caché (NOPRINT). Ce rapport emploie le formatage conditionnel pour mettre en évidence les employés qui ont démissionné.
Notez que la condition de l'attribut WHEN évalue un champ (STATUS) qui est masqué dans le rapport. Bien que le champ évalué dans la condition doive faire partie de la requête de rapport, vous pouvez empêcher qu'il s'affiche dans le rapport en utilisant l'option NOPRINT, comme le montre la requête suivante.
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 sortie est :
Cet exemple illustre la façon d'appliquer le formatage conditionnel à un rapport. Ce rapport emploie le formatage conditionnel pour mettre en évidence les employés qui ont démissionné.
Notez qu'une seule déclaration conditionnelle permet d'appliquer le formatage à toutes les lignes du groupe de tri. Cela se fait en évaluant le champ de tri (STATUS) dans la condition de l'attribut 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 sortie est :
Pour appliquer le même formatage conditionnel à seulement deux colonnes, et non pas toutes les colonnes, cette version de la requête de rapport utilise deux déclarations, chacune spécifiant une différente colonne (LNAME et 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 sortie est :
Ce qui suit illustre la façon d'appliquer le formatage conditionnel aux valeurs prévisionnelles dans un rapport.
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 sortie est :
WebFOCUS |