Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Sortieren zweistelliger Jahreszahlen mit Jahrhundertfenster

&pagelevel(4)&pagelevel

Allgemeine Beschreibung

Die folgende Beschreibung ist sowohl für den Dateien- als auch für den Tabellensort gültig. Das Jahrhundertfenster wird wie in der COBOL-Funktion YEAR-TO-YYYY festgelegt. Das letzte Jahr, das noch zu diesem Fenster gehört, wird relativ zum aktuellen Jahr angegeben. Der angegebene Wert bestimmt die Anzahl der zukünftigen Jahre, die zum Jahrhundertfenster gehören. So bedeutet der Wert 50 bei Ablauf in 1998 den Zeitraum von 1949 bis 2048.

Zur Festlegung des Jahrhundertfensters wird ein SORT-Sonderregister SORT-EOW (SORT-END-OF-WINDOW) definiert. Es wird in COBOL-Programmen mit der SORT- bzw. MERGE-Anweisung zur Verfügung gestellt und durch den Compiler implizit mit PIC 9(7) PACKED-DECIMAL beschrieben. Der in SORT-EOW gespeicherte Wert muss zwischen 0 und 99 liegen. Standardwert ist 50.

Um zweistellige Jahreszahlen, in Abhängigkeit von einem Jahrhundertfenster, als SORT-Schlüssel verwenden zu können, sind die Angaben ASCENDING/DESCENDING in der SORT- und MERGE-Anweisung erweitert worden.

Bei der MERGE-Anweisung wird zu Beginn der Verarbeitung die Lage des Jahrhundertfensters festgelegt (Auswertung SORT-EOW und aktuelles Jahr). Werden z.B. Dateien voher mit der SORT-Anweisung sortiert, so muss dafür dasselbe Jahrhundertfenster gewählt werden.

Beispiel 12-9

SORT mit Auswahl des Jahrhundertfensters

IDENTIFICATION DIVISION.
PROGRAM-ID.SORTIERY.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
   SELECT EINGABE ASSIGN TO "EINGABE".
   SELECT AUSGABE ASSIGN TO "AUSGABE".
   SELECT SORTIER ASSIGN TO "SORTWK".
DATA DIVISION.
FILE SECTION.
FD EINGABE.
01 ESATZ.
   02 E0      PIC X.
   02 EY1     PIC 99.
   02 EY2     PIC 99 USAGE PACKED-DECIMAL.
   02 E3      PIC X(10).
FD AUSGABE.
01 ASATZ.
   02 A0      PIC X.
   02 AY1     PIC 99.
   02 AY2     PIC 99 USAGE PACKED-DECIMAL.
   02 A3      PIC X(10).
SD SORTIER.
01 SSATZ.
   02 S0       PIC X.
   02 SY1      PIC 99.
   02 SY2      PIC 99 USAGE PACKED-DECIMAL.
   02 S3       PIC X(10).
PROCEDURE DIVISION.
P1 SECTION.
SORTIEREN.
* Festlegung des Jahrhundertfensters: bei Ablauf im Jahr
* 1998 ist 2008 das letzte Jahr des Jahrhundertfensters
     MOVE 10 TO SORT-EOW
* Die Schlüssel SY1 und SY2 werden als zweistellige Jahres-
* zahlen innerhalb des Jahrhundertfensters von 1909-2008
* behandelt; 06 ist größer als 75
     SORT SORTIER ASCENDING KEY-YY SY1 SY2
                 DESCENDING KEY S3
     USING EINGABE GIVING AUSGABE.
SORTEND.
     STOP RUN.