Inclusion conditionnelle de lignes récapitulatives, de soulignements, de sauts de lignes et de sauts de page

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

Haut de page

x
Syntaxe : Afficher conditionnellement des lignes récapitulatives, des soulignements, des lignes sautées et des sauts de page
{BY|ON} sortfield [option WHEN condition [;] [AND]]...

où :

BY|ON

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.

sortfield

Est le nom d'un champ de tri vertical (BY).

option

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.

condition

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é.

AND

peut être compris entre deux ensembles d'options de critère de tri afin d'améliorer la lisibilité.



Exemple : Utilisation d'une condition WHEN pour une option de tri

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 :



Exemple : Utilisation de conditions WHEN pour des options de tri multiples

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