In diesem Abschnitt:
Vorgehensweise: Referenz: |
Sie können Reportinformationen vertikal sortieren, indem Sie die BY-Phrase verwenden. Dies erzeugt in Ihrem Report Zeilen. Sie können bis zu 128 Sortierphrasen (BY-Phrasen und ACROSS-Phrases) pro Reportanfrage (127, wenn Sie PRINT oder LIST-Anzeigebefehle verwenden) aufnehmen.
Sortierfelder werden angezeigt, wenn sich ihr Wert ändert. Sie können jedoch jeden Sortierwert anzeigen, indem Sie den Parameter BYDISPLAY verwenden. Ein Beispiel finden Sie unter Alle vertikalen (BY) Sortierfeldwerte anzeigen.
BY {HIGHEST|LOWEST} [n] sortfield [AS 'text']
Hierbei gilt:
Sortiert in absteigender Reihenfolge.
Sortiert in aufsteigender Reihenfolge. LOWEST ist der Defaultwert.
Gibt an, dass nur n Sortierfeldwerte im Report enthalten sind.
Ist der Name des Sortierfeldes.
Ist die Spaltenkopfzeile, die für die Sortierfeldspalte in der Reportausgabe verwendet werden soll.
PRINT LAST_NAME BY DEPARTMENT
MIS einmal, gefolgt von sechs Angestelltennamen. Sie können jede vertikale Sortierspaltenzelle mit einem Wert auffüllen, selbst wenn der Wert sich wiederholt, indem Sie den SET BYDISPLAY-Parameter verwenden. Genaueres finden Sie unter Alle vertikalen (BY) Sortierfeldwerte anzeigen.
Im Folgenden wird beschrieben, wie Sie alle Angestellten-IDs nach Abteilung anzeigen.
TABLE FILE EMPLOYEE PRINT EMP_ID BY DEPARTMENT END
In der Ausgabe wird für jede EMP_ID in jeder Abteilung eine Zeile angezeigt:
Vorgehensweise: |
In einer vertikalen Sortiergruppe wird der Sortierfeldwert nur auf der ersten Zeile für seine Sortiergruppe angezeigt, und auf der ersten Zeile einer Seite. Sie können jedoch mit dem SET BYDISPLAY-Befehl das entsprechende BY-Feld auf jeder Zeile eines Reports anzeigen, der in einem gestylten Ausgabeformat erzeugt wurde.
Obwohl SET BYDISPLAY für alle gestylten Ausgabeformate unterstützt wird, ist er besonders wichtig, um die Reportausgabe für Excel leichter verwendbar zu machen, da Excel Spalten nicht richtig sortieren kann, wenn in manchen Zeilen Leerwerte vorkommen.
Dieses Feature ermöglicht es Ihnen, das Sortierfeld nicht zweimal angeben zu müssen, einmal als ein Anzeigefeld und einmal für die Sortierung (mit der Option NOPRINT). Beispiel:
PRINT FIRST_NAME LAST_NAME BY FIRST_NAME NOPRINT
SET BYDISPLAY = {OFF|ON}
oder
ON TABLE SET BYDISPLAY {OFF|ON}
Hierbei gilt:
Zeigt einen BY-Feldwert nur auf der ersten Zeile der Reportausgabe für die Sortiergruppe an und auf der ersten Zeile einer Seite. OFF ist der Defaultwert.
Zeigt den assoziierten BY-Feldwert auf jeder Zeile der Reportausgabe an, die in einem gestylten Format erzeugt wurde.
Im Folgenden wird beschrieben, wie Sie jede Instanz eines vertikalen (BY) Sortierfeldwerts in einem gestylten Report mit SET BYDISPLAY anzeigen können.
SET BYDISPLAY = ON
TABLE FILE CENTHR
PRINT LNAME
BY FNAME
WHERE FNAME EQ 'CAROLYN' OR 'DAVID' ON
TABLE PCHOLD FORMAT EXL2KEND
Die Ausgabe ist:
Sie können Information in einem Report gliedern, indem Sie mehrere Sortierfelder verwenden. Wenn Sie mehrere Sortierfelder angeben, bestimmt die Reihenfolge der BY-Phrasen die Sortierreihenfolge. Die erste BY-Phrase stellt den Hauptsortierumbruch ein, die zweite BY-Phrase stellt den zweiten Sortierumbruch ein, etc. Jede nachfolgende Sortierung ist in die vorherige eingebettet.
In der folgenden Anfrage werden mehrere vertikale (BY) Sortierfelder verwendet.
TABLE FILE EMPLOYEE PRINT CURR_SAL BY DEPARTMENT BY LAST_NAME WHERE CURR_SAL GT 21500 END
Die Ausgabe ist:
DEPARTMENT LAST_NAME CURR_SAL ---------- --------- -------- MIS BLACKWOOD $21,780.00 CROSS $27,062.00 PRODUCTION BANNING $29,700.00 IRVING $26,862.00
Vorgehensweise: Referenz: |
In einer Sortierphrase können Sie die Anzahl der angezeigten Sortierwerte beschränken. Mit der PLUS OTHERS-Phrase können Sie alle anderen Werte in einer separaten Gruppe aggregieren und diese Gruppe als eine zusätzliche Reportzeile anzeigen.
[RANKED] BY {HIGHEST|LOWEST|TOP|BOTTOM} n srtfield [AS 'text'] [PLUS OTHERS AS 'othertext'] [IN-GROUPS-OF m1 [TOP n2]] [IN-RANGES-OF m3 [TOP n4]
Hierbei gilt:
Sortiert in aufsteigender Reihenfolge, angefangen mit dem niedrigsten Wert, und bis hin zum höchsten Wert (a-z, A-Z, 0-9 für alphanumerische Felder; 0-9 für numerische Felder). BOTTOM ist ein Synonym für LOWEST.
Sortiert in absteigender Reihenfolge, angefangen mit dem höchsten Wert und bis hin zum niedrigsten Wert. TOP ist ein Synonym für HIGHEST.
Gibt an, dass nur n Sortierfeldwerte im Report enthalten sind.
Ist der Name des Sortierfeldes.
Ist der Text, der als Spaltenkopfzeile für die Sortierfeldwerte verwendet werden soll.
Ist der Text, der als Zeilentitel für die Gruppierung "Andere" verwendet werden soll. Diese AS-Phrase muss die AS-Phrase sein, die direkt auf die Phrase PLUS OTHERS folgt.
Ist der inkrementelle Wert zwischen Sortierfeldgruppen.
Ist eine optionale Zahl, die das höchste Gruppenlabel definiert, das in den Report aufgenommen werden soll.
Ist eine ganze Zahl, die größer ist als Null, und die angibt, in welchem Bereich Sortierfeldwerte gruppiert werden.
Ist eine optionale Zahl, die das höchste Bereichslabel definiert, das in den Report aufgenommen werden soll. Der Bereich wird erweitert, so dass er alle Datenwerte enthält, die größer als dieser Wert sind.
Die folgende Anfrage zeigt die zwei höchsten ED_HRS-Werte an und aggregiert die Werte, die nicht enthalten sind, in einer Zeile namens Andere:
TABLE FILE EMPLOYEE PRINT CURR_SAL LAST_NAME BY HIGHEST 2 ED_HRS PLUS OTHERS AS 'Others' END
Die Ausgabe ist:
ED_HRS CURR_SAL LAST_NAME ------ -------- --------- 75.00 $21,780.00 BLACKWOOD 50.00 $18,480.00 JONES $16,100.00 MCKNIGHT Others $165,924.00
Die folgende Anfrage sortiert nach höchste 2 ED_HRS und gruppiert die Sortierfeldwerte in Inkrementen von 25 ED_HRS. Werte, die unter das niedrigste Gruppenlabel fallen, werden in die Kategorie Andere aufgenommen. Alle Werte über dem höchsten Gruppenlabel werden in die höchste Gruppe aufgenommen:
TABLE FILE EMPLOYEE PRINT CURR_SAL LAST_NAME BY HIGHEST 2 ED_HRS PLUS OTHERS AS 'Others' IN-GROUPS-OF 25 TOP 50 END
Die Ausgabe ist:
ED_HRS CURR_SAL LAST_NAME ------ -------- --------- 50.00 $18,480.00 JONES $21,780.00 BLACKWOOD $16,100.00 MCKNIGHT 25.00 $11,000.00 STEVENS $13,200.00 SMITH $26,862.00 IRVING $9,000.00 GREENSPAN $27,062.00 CROSS Others $78,800.00
Wenn die Phrase BY HIGHEST geändert wird in BY LOWEST, werden alle Werte über der obersten Gruppierung (50 ED_HRS und höher) in die Kategorie Andere aufgenommen:
TABLE FILE EMPLOYEE PRINT CURR_SAL LAST_NAME BY LOWEST 2 ED_HRS PLUS OTHERS AS 'Others' IN-GROUPS-OF 25 TOP 50 END
Die Ausgabe ist:
ED_HRS CURR_SAL LAST_NAME ------ -------- --------- .00 $9,500.00 SMITH $29,700.00 BANNING $21,120.00 ROMANS $18,480.00 MCCOY 25.00 $11,000.00 STEVENS $13,200.00 SMITH $26,862.00 IRVING $9,000.00 GREENSPAN $27,062.00 CROSS Others $56,360.00
WebFOCUS |