Comment : |
Vous pouvez inclure conditionnellement des options de tri telles que des sous-totaux et d'autres lignes récapitulatives, des en-têtes et pieds de page, des soulignements, des lignes sautées et des sauts de page, ainsi que reprendre le numérotage de pages, en ajoutant une phrase WHEN à votre requête de rapport. La phrase WHEN spécifie une condition qui est évaluée pour chaque valeur d'un champ de tri vertical (BY). L'option de tri (ligne récapitulative, soulignement, ligne sautée ou saut de page) s'applique à chaque groupe de tri qui satisfait la condition. Elle est ignorée par les groupes de tri qui ne satisfont pas la condition.
La phrase WHEN est une extension des phrases ON critère de tri et BY critère de tri. Vous pouvez spécifier une phrase WHEN pour chaque phrase de critère de tri. Par exemple :
ON ORDER_NUM UNDER-LINE WHEN QUANTITY GT 5 ON COUNTRY PAGE-BREAK WHEN LINEPRICE GT 200000
Si une phrase de critère de tri comprend plusieurs options de tri, vous pouvez spécifier une différente phrase WHEN pour chaque option. Par exemple :
ON ORDER_NUM SKIP-LINE WHEN QUANTITY GT 5; UNDER-LINE WHEN QUANTITY GT 10
{BY|ON} sortfield [option WHEN condition [;] [AND]]...
où :
sont identiques au niveau fonctionnel. La différence se trouve au niveau syntaxique (BY vous permet de spécifier la fonctionnalité de tri comme faisant partie de la phrase, tandis que ON vous permet de la spécifier séparément de la phrase de tri). Pour plus d'informations, consultez la documentation relative à l'option de critère de tri que vous utilisez.
Est le nom d'un champ de tri vertical (BY).
Est l'une des fonctionnalités de tri suivantes : PAGE-BREAK, PAGE-BREAK REPAGE, RECAP, RECOMPUTE, SKIP-LINE, SUBFOOT, SUBHEAD, SUBTOTAL, SUB-TOTAL, SUMMARIZE, UNDER-LINE.
Si vous spécifiez SUBHEAD ou SUBFOOT, vous devez positionner la phrase WHEN sur la ligne suivant le texte de l'en-tête ou du pied de page.
Est une expression logique. Pour plus d'informations, consultez Utilisation d'expressions.
Vous devez mettre les constantes non-numériques, telles que les chaînes de caractères et les dates, entre guillemets simples.
Si la condition évalue un champ de détail numérique, elle évalue la somme des valeurs du champ de détail dans chaque groupe de tri, et non pas les valeurs de détail individuelles. Par exemple, dans la requête
TABLE FILE CENTHR PRINT ID_NUM SALARY BY PLANT ON PLANT UNDER-LINE WHEN SALARY GT 2000000 END
la condition évalue la somme des valeurs du champ SALARY au sein de chaque valeur du champ PLANT.
Si la condition évalue un champ alphanumérique qui s'affiche plusieurs fois dans un groupe de tri, elle évalue la dernière valeur du champ dans chaque groupe de tri.
Vous pouvez appliquer un opérateur préfixe à un champ dans la condition (par exemple, WHEN AVE.PRICE GT 300) même si l'opérateur et le champ ne sont pas utilisés dans le rapport. L'agrégation s'effectue pour chaque valeur du champ de tri.
Si la phrase ON ou BY comprend plusieurs options, la condition WHEN ne s'applique qu'à l'option qui la précède immédiatement.
Est nécessaire si des phrases WHEN sont comprises pour plusieurs options dans la phrase BY ou ON. Le point virgule est facultatif dans toute autre situation et ne sert qu'à améliorer la lisibilité.
peut être compris entre deux ensembles d'options de critère de tri afin d'améliorer la lisibilité.
L'exemple suivant illustre comment afficher conditionnellement un pied de page secondaire dans un rapport. Ce rapport utilise un pied de page de tri conditionnel pour mettre en valeur les commandes dont le total est inférieur à 200 000.
TABLE FILE CENTORD
HEADING
"Order Revenue"
" "
SUM ORDER_DATE LINEPRICE AS 'Order,Total:'
BY HIGHEST 5 ORDER_NUM
ON ORDER_NUM
SUBFOOT
"--- Order total is less than $200,000 ---"
" "
WHEN LINEPRICE LT 200000
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
ENDSTYLE
END
La sortie est :
Cet exemple illustre la façon d'appliquer des conditions multiples au composant de rapport. Ce rapport utilise des pieds de page conditionnels pour distinguer entre les commandes dont le total est supérieur à inférieur à 200 000.
Notez qu'une phrase de tri (ON ORDER_NUM) spécifie plusieurs options de tri (deux phrases SUBFOOT différentes) et que chaque option comprend sa propre phrase WHEN.
TABLE FILE CENTORD
HEADING
"Order Revenue"
" "
SUM ORDER_DATE LINEPRICE AS 'Order,Total:'
BY HIGHEST 5 ORDER_NUM
ON ORDER_NUM
SUBFOOT
"--- Order total is less than $200,000 ---"
" "
WHEN LINEPRICE LT 200000;
SUBFOOT
"+++ Order total is greater than or equal to $200,000 +++"
" "
WHEN LINEPRICE GE 200000;
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLESHEET *
TYPE=REPORT, GRID=OFF, $
ENDSTYLE
END
La sortie est :
WebFOCUS |