In diesem Abschnitt: |
Eine Anfrage kann aus bis zu sechzehn Sets mit separaten Anzeigebefehlen (auch als Verbphrasen bekannt) bestehen, die alle ihre eigenen Sortierbedingungen haben. Um alle Informationen anzuzeigen, muss eine bedeutungsvolle Beziehung zwischen den separaten Sortierbedingungssets bestehen. Es treffen die folgenden Regeln zu:
TABLE FILE EMPLOYEE SUM ED_HRS SUM CURR_SAL CNT.CURR_SAL BY DEPARTMENT PRINT FIRST_NAME BY DEPARTMENT BY LAST_NAME END
Der erste SUM hat keine Sortierbedingung. Der zweite SUM hat eine Sortierbedingung: BY DEPARTMENT. Aufgrund der Sortierbedingung muss der PRINT-Befehl BY DEPARTMENT als erste Sortierbedingung haben, und es können andere Sortierbedingungen nach Bedarf hinzugefügt werden.
Die folgende Anfrage summiert mehrere Detailebenen in der Datenquelle.
TABLE FILE EMPLOYEE SUM CURR_SAL SUM CURR_SAL BY DEPARTMENT SUM CURR_SAL BY DEPARTMENT BY LAST_NAME END
Der Befehl SUM CURR_SAL berechnet die Gesamtsumme der aktuellen Gehälter. SUM CURR_SAL BY DEPARTMENT berechnet die Gesamtsummen der aktuellen Gehälter in den einzelnen Abteilungen. SUM CURR_SAL BY DEPARTMENT BY LAST_NAME berechnet die Gesamtsummen der aktuellen Gehälter für die einzelnen Angestelltennamen.
Die Ausgabe ist:
Vorgehensweise: |
Sie können den Befehl SET DUPLICATECOL verwenden, um Reportanfragen neu zu formatieren, die mehrere Anzeigebefehle verwenden, was aggregierte Felder in dieselbe Spalte über dem angezeigten Feld platziert.
Per Default erzeugt jeder neue Anzeigebefehl in einer Anfrage zusätzliche Sortierfeld- und Anzeigefeldspalten. Wenn DUPLICATECOL auf OFF eingestellt ist, nimmt jedes Feld nur eine Spalte in der Anfrage ein, wobei die Werte jedes Anzeigebefehls sich direkt unter den Werten des vorherigen Anzeigebefehls befinden.
SET DUPLICATECOL={ON|OFF}
Hierbei gilt:
Zeigt im Report jedes Feld als eine Spalte an. Dies ist der Defaultwert.
Zeigt im Report allgemeine Felder als eine Zeile an.
Die folgende Anfrage summiert aktuelle Gehälter und Fortbildungsstunden für die gesamte EMPLOYEE-Datenquelle und für jede Abteilung:
TABLE FILE EMPLOYEE SUM CURR_SAL ED_HRS SUM CURR_SAL ED_HRS BY DEPARTMENT END
Mit DUPLICATECOL=ON, hat die Ausgabe separate Spalten für die Gesamtsummen und für die Summen in den Abteilungen:
CURR_SAL ED_HRS DEPARTMENT CURR_SAL ED_HRS -------- ------ ---------- -------- ------ $222,284.00 351.00 MIS $108,002.00 231.00 PRODUCTION $114,282.00 120.00
Mit DUPLICATECOL=OFF hat die Ausgabe für jedes Feld eine Spalte. Die Gesamtsummen befinden sich in der obersten Zeile des Reports, und die Summen in den Abteilungen befinden sich in zusätzlichen Zeilen unter den Gesamtsummen:
DEPARTMENT CURR_SAL ED_HRS ---------- -------- ------ $222,284.00 351.00 MIS $108,002.00 231.00 PRODUCTION $114,282.00 120.00
Die folgende Anfrage fügt der vorherigen Anfrage einen PRINT-Befehl sortiert nach Abteilung und nach Nachname hinzu:
SET SPACES = 1 TABLE FILE EMPLOYEE SUM CURR_SAL ED_HRS SUM CURR_SAL ED_HRS BY DEPARTMENT AS 'DEPT' PRINT FIRST_NAME CURR_SAL ED_HRS BY DEPARTMENT BY LAST_NAME END
Mit DUPLICATECOL=ON hat die Ausgabe separate Spalten für die Gesamtsummen, für die Summen in den Abteilungen und für jeden Nachnamen:
Mit DUPLICATECOL=OFF hat die Ausgabe für jedes Feld eine Spalte. Die Gesamtsummen befinden sich oben im Report, die Abteilungssummen befinden sich in zusätzlichen Zeilen unter den Gesamtsummen, und die Werte für jeden Nachnamen befinden sich auf zusätzlichen Zeilen unter den Abteilungssummen:
DEPT LAST_NAME FIRST_NAME CURR_SAL ED_HRS ---- --------- ---------- -------- ------ $222,284.00 351.00 MIS $108,002.00 231.00 BLACKWOOD ROSEMARIE $21,780.00 75.00 CROSS BARBARA $27,062.00 45.00 GREENSPAN MARY $9,000.00 25.00 JONES DIANE $18,480.00 50.00 MCCOY JOHN $18,480.00 .00 SMITH MARY $13,200.00 36.00 PRODUCTION $114,282.00 120.00 BANNING JOHN $29,700.00 .00 IRVING JOAN $26,862.00 30.00 MCKNIGHT ROGER $16,100.00 50.00 ROMANS ANTHONY $21,120.00 5.00 SMITH RICHARD $9,500.00 10.00 STEVENS ALFRED $11,000.00 25.00
In einem StyleSheet können Sie die Zeilen identifizieren, die Sie stylen möchten, indem Sie angeben, welcher Anzeigebefehl diese Zeilen erstellt hat:
VERBSET = n
Hierbei gilt:
Ist die Ordinalzahl des Anzeigebefehls in der Reportanfrage.
Die folgende Anfrage hat zwei Anzeigebefehle:
SET DUPLICATECOL = OFF TABLE FILE EMPLOYEE SUM CURR_SAL ED_HRS BY DEPARTMENT PRINT FIRST_NAME CURR_SAL ED_HRS BY DEPARTMENT BY LAST_NAME ON TABLE SET STYLE * TYPE = REPORT, COLUMN= P4, VERBSET = 1, STYLE = ITALIC, COLOR=BLUE,$ TYPE = REPORT, COLUMN= B2, VERBSET = 2, STYLE = UNDERLINE, COLOR = RED,$ ENDSTYLE END
In der Ausgabe:
Wenn Sie bestimmte Spalten formatieren, bedeutet die Verwendung der P-Notation, dass Sie jede Spalte zählen, die in der Reportausgabe angezeigt wird, einschließlich BY-Spalten. Es ist daher P1 die DEPARTMENT-Spalte, P2 die LAST_NAME-Spalte (dies ist auch B2, die zweite BY-Feldspalte), P3 die FIRST_NAME-Spalte, P4 die angezeigte Version der CURR_SAL-Spalte (die interne Matrix hat mehrere CURR_SAL-Spalten) und P5 die angezeigte ED_HRS-Spalte (die interne Matrix hat mehrere ED_HRS-Spalten).
Die Ausgabe ist:
WebFOCUS |