Summenzeilen, Unterstriche, Übersprungene Zeilen und Seitenumbrüche bedingt aufnehmen

Vorgehensweise:

Sie können auf Sortierung basierende Optionen wie Zwischensummen und andere Summenzeilen, Sortierkopfzeilen und -fußzeilen, Unterstriche, übersprungene Zeilen und Seitenumbrüche bedingt aufnehmen und Seitennummerierung bedingt neu starten, indem Sie in Ihrer Reportanfrage die Phrase ON verwenden. Die Phrase WHEN gibt eine Bedingung an, die ausgewertet wird für jeden Wert eines vertikalen Sortierfeldes (BY). Die auf Sortierung basierende Option (Summenzeile, Unterstrich, übersprungene Zeile oder Seitenumbruch) wird auf jede Sortiergruppe angewendet, die die Bedingung erfüllt, und wird von Sortiergruppen ignoriert, die die Bedingung nicht erfüllen.

Die WHEN-Phrase ist eine Erweiterung der Phrasen ON sortfield und BYsortfield. Sie können eine WHEN-Phrase für jede sortfield-Phrase angeben. Beispiel:

ON ORDER_NUM UNDER-LINE WHEN QUANTITY GT 5
ON COUNTRY PAGE-BREAK WHEN LINEPRICE GT 200000

Falls eine sortfield-Phrase mehrere Sortieroptionen enthält, können Sie für jede Option eine andere WHEN-Phrase angeben. Beispiel:

ON ORDER_NUM SKIP-LINE WHEN QUANTITY GT 5; UNDER-LINE WHEN QUANTITY GT 10

Nach oben

x
Syntax: Summenzeilen, Unterstriche, Übersprungene Zeilen und Seitenumbrüche bedingt anzeigen
{BY|ON} sortfield [option WHEN condition [;] [AND]]...

Hierbei gilt:

BY|ON

Diese sind in der Funktionsweise identisch. Der einzige Unterschied besteht in der Syntax (BY ermöglicht es Ihnen, das auf Sortierung basierende Feature als Teil der Sortierphrase anzugeben, während ON es Ihnen ermöglicht, es von der Sortierphrase separat anzugeben). Weitere Informationen finden Sie in der Dokumentation für die sortfield-Option, die Sie verwenden.

sortfield

Ist der Name eines vertikalen Sortierfeldes (BY).

option

Ist eines der folgenden auf Sortierung basierenden Features: PAGE-BREAK, PAGE-BREAK REPAGE, RECAP, RECOMPUTE, SKIP-LINE, SUBFOOT, SUBHEAD, SUBTOTAL, SUB-TOTAL, SUMMARIZE, UNDER-LINE.

Wenn Sie SUBHEAD oder SUBFOOT angeben, müssen Sie die WHEN-Phrase in der Zeile nach dem Text der Kopf- oder Fußzeile platzieren.

condition

Ist eine logische Formel. Weitere Informationen finden Sie unter Formeln verwenden.

Sie müssen nichtnumerische Konstanten, wie z. B. Zeichenfolgen und Daten, in einfache Anführungszeichen setzen.

Wenn die Bedingung ein numerisches Detailfeld auswertet, wertet sie die Summe der Detailfeldwerte innerhalb jeder Sortiergruppe aus und nicht die individuellen Detailwerte. Beispielsweise wertet in der Anfrage

TABLE FILE CENTHR 
PRINT ID_NUM SALARY 
BY PLANT
ON PLANT UNDER-LINE  
WHEN SALARY GT 2000000 
END

die Bedingung die Summe der SALARY-Werte innerhalb jedes PLANT-Wertes aus.

Wenn die Bedingung ein alphanumerisches Feld auswertet, das in einer Sortiergruppe mehrfach vorkommt, wertet sie den letzten Wert des Feldes in jeder Sortiergruppe aus.

Sie können auf ein Feld in der Bedingung einen Präfixoperator anwenden (z. B. WHEN AVE.PRICE GT 300), selbst wenn der Operator und das Feld im Report nicht verwendet werden. Die Aggregation wird für jeden Wert des Sortierfeldes durchgeführt.

Wenn die Phrase BY oder ON mehrere Optionen enthält, trifft die WHEN-Bedingung nur auf die Option zu, die ihr direkt vorangestellt ist.

;

Ist erforderlich, wenn WHEN-Phrasen für mehrere Optionen in dieser BY- oder ON-Phrase aufgenommen werden. In allen anderen Situationen ist es optional und verbessert einfach nur die Lesbarkeit.

AND

Kann zwischen zwei Sets von sortfield-Optionen eingefügt werden, um die Lesbarkeit zu verbessern.



Beispiel: Eine WHEN-Bedingung für eine Sortieroption verwenden

In diesem Beispiel ist zu sehen, wie Sie eine Zwischenfußzeile in einem Report bedingt anzeigen. Dieser Report verwendet eine bedingte Sortierfußzeile, um die Aufmerksamkeit auf Bestellungen mit einer Gesamtsumme von weniger als 200.000 zu lenken.

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

Die Ausgabe ist:



Beispiel: WHEN-Bedingungen für mehrere Sortieroptionen verwenden

In diesem Beispiel ist zu sehen, wie Sie mehrere Bedingungen auf eine Reportkomponente anwenden. Dieser Report verwendet bedingte Sortierfußzeilen, um zwischen Bestellungen zu unterscheiden, die eine Gesamtsumme von mehr als 200.000 haben, und solchen, die eine Gesamtsumme von weniger als 200.000 haben.

Beachten Sie, dass eine Sortierphrase (ON ORDER_NUM) mehrere Optionen angibt, die sich auf die Sortierung beziehen (zwei unterschiedliche SUBFOOT-Phrasen), und dass jede Option ihre eigene WHEN-Phrase hat.

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

Die Ausgabe ist:


WebFOCUS