Vorgehensweise: |
Sie können auf Sortierung basierende Optionen wie Zwischensummen und andere Summenzeilen, Sortierkopfzeilen und -fußzeilen, Unterstriche, übersprungene Zeilen und Seitenumbrüche aufnehmen und Seitennummerierung neu starten, indem Sie in Ihrer Reportanfrage die Phrase ON verwenden. Die Phrase ON gibt eine Option an, die ausgelöst werden kann durch eine Änderung in einem Sortierfeld oder einem Anzeigefeld. Die auf Sortierung basierende Option (Summenzeile, Unterstrich, übersprungene Zeile oder Seitenumbruch) wird auf jede Sortiergruppe angewendet.
Um Reportanfragen flexibel zu machen, werden eventuell Optionen aufgenommen, die nicht in jeder Situation benötigt werden. Die Auswahl der Benutzer steuert dann die Optionen, die für die jeweilige Ausführung der Anfrage verwendet werden.
Per Default wird die folgende Meldung erzeugt und die Verarbeitung gestoppt, wenn das Feld, auf das in der ON-Phrase verwiesen wird, in der Anfrage nicht vorhanden ist, oder die Option für den angegebenen Feldtyp nicht unterstützt wird:
(FOC013) The 'ON FIELDNAME' FIELD IS NOT A SORT FIELD: sortfield
Sie können den Befehl SET ONFIELD =IGNORE verwenden, um WebFOCUS anzuweisen, ON-Phrasen zu ignorieren, die verweisen auf nicht vorhandene Felder oder Felder, die von der angegebenen Option nicht unterstützt werden.
Beachten Sie, dass jedes Feld, das verwendet wird, in der Masterdatei für die Datenquelle vorhanden sein muss. Ansonsten wird die folgende Meldung erzeugt und die Ausführung wird gestoppt:
(FOC003) THE FIELDNAME IS NOT RECOGNIZED: field
{BY|ON} sortfield option [[AND] option ...]
Hierbei gilt:
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.
Ist der Name eines vertikalen Sortierfeldes (BY).
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.
Kann zwischen zwei Sets von sortfield-Optionen eingefügt werden, um die Lesbarkeit zu verbessern.
SET ONFIELD = {ALL|IGNORE}
ON TABLE SET ONFIELD {ALL|IGNORE}
Hierbei gilt:
Gibt eine Meldung aus und beendet die Ausführung, wenn ein Feld, auf das in einer ON-Phrase verwiesen wird, in der Anfrage nicht vorhanden ist. ALL ist der Defaultwert.
Ignoriert ON-Phrasen, die auf Felder verweisen, die in der Anfrage nicht vorhanden sind, sowie ON-Phrasen, die Optionen enthalten, die vom angegebenen Feldtyp nicht unterstützt werden.
Die folgende Anfrage mit der Datenquelle EMPDATA hat ON-Phrasen für die Felder DEPT, DIV und PIN. PIN ist ein Sortierfeld, aber das andere Sortierfeld muss eingegeben werden bei der Ausführung als die Ampervariable &F1:
SET USER = EUSER TABLE FILE EMPDATA SUM SALARY BY &F1 BY PIN ON DEPT SKIP-LINE NOSPLIT ON &F1 SUBTOTAL ON DIV PAGE-BREAK ON TABLE SET ONFIELD ALL END
Führen Sie die Anfrage aus und geben Sie den Wert DEPT für die Variable &F1 an. Es werden die folgenden Meldungen erzeugt:
ERROR AT OR NEAR LINE 8 IN PROCEDURE IGNORE3 FOCEXEC * (FOC013) THE 'ON FIELDNAME' FIELD IS NOT A SORT FIELD: DIV BYPASSING TO END OF COMMAND (FOC009) INCOMPLETE REQUEST STATEMENT
Ändern Sie jetzt den Wert des Parameters ONFIELD zu IGNORE und führen Sie die Anfrage erneut aus. Geben Sie den Wert DEPT für die Variable &F1 an. Dies ist die Teilausgabe:
DEPT PIN SALARY ---- --- ------ ACCOUNTING 000000070 $83,000.00 000000100 $32,400.00 000000300 $79,000.00 000000370 $62,500.00 000000400 $26,400.00 *TOTAL ACCOUNTING $283,300.00 ADMIN SERVICES 000000170 $30,800.00 000000180 $25,400.00 *TOTAL ADMIN SERVICES $56,200.00
WebFOCUS |