Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

CORRESPONDING-Angabe

&pagelevel(4)&pagelevel

Die CORRESPONDING-Angabe ermöglicht es dem Anwender, mit einer Anweisung Operationen auf verschiedene Datenelemente gleichen Namens in verschiedenen Datengruppen auszuführen.

  1. CORR ist die Abkürzung von CORRESPONDING.

  2. Alle Bezeichner müssen sich auf Datengruppen beziehen. Bezieht sich ein Bezeichner auf eine nationale Datengruppe, so wird diese nicht wie ein Datenelement verarbeitet, sondern wie eine Gruppe.

  3. Paare von Datenfeldern entsprechen sich, wenn die nachstehend beschriebenen Bedingungen erfüllt sind; alle anderen Datenfelder werden bei der Operation nicht berücksichtigt.

  4. Beide Datenfelder haben den gleichen Namen und gleiche Qualifizierung, bis zu, aber nicht unbedingt einschließlich, bezeichner-1 und bezeichner-2.

  5. Keines der Datenfelder ist mit FILLER erklärt.

  6. Mindestens eines der Datenfelder ist im Falle von MOVE CORRESPONDING ein Datenelement und die daraus resultierende MOVE-Anweisung ist gültig entsprechend den Regeln der MOVE-Anweisung; beide Datenfelder sind Datenelemente im Falle von ADD CORRESPONDING oder SUBTRACT CORRESPONDING.

  7. Ein Datenfeld, das bezeichner-1 oder bezeichner-2 untergeordnet ist und das mit einer REDEFINES-Klausel, RENAMES-Klausel, OCCURS-Klausel, USAGE IS INDEX-Klausel definiert oder von der Klasse objekt oder der Klasse zeiger ist, wird ignoriert; alle Felder, die diesen Feldern untergeordnet sind, werden ebenfalls ignoriert. bezeichner1 oder bezeichner-2 können jedoch mit REDEFINES-Klauseln oder OCCURS-Klauseln definiert werden oder Datenfeldern untergeordnet sein, die mit REDEFINES-Klauseln oder OCCURS-Klauseln definiert sind.

  8. Auf Bezeichner, die einer Teilfeldselektion unterzogen werden, kann die CORRESPONDING-Angabe nicht angewendet werden.

Beispiel 8-16

In diesem Beispiel werden Datenelemente in ARBEITER-SATZ von entsprechenden Feldern in LOHN-KONTROLLE abgezogen.

Anweisung in der PROCEDURE DIVISION:

SUBTRACT CORRESPONDING ARBEITER-SATZ FROM LOHN-KONTROLLE.

Einträge in der DATA DIVISION:
01  ARBEITER-SATZ. 
    02  ARBEITER-NR.
        03  ARBEITS-ORT...
        03  STECHUHR-NR.
            04  SCHICHT-KENNZAHL...
            04  KONTROLL-NR... 
    02  LOHN.
        03  ARBEITSSTUNDEN... 
        03  AUSZAHLUNG...
    02  STEUER-SATZ... 
    02  ABZUEGE...
01  LOHN-KONTROLLE.
    02  ARBEITER-NR.
        03  STECHUHR-NR...
        03  FILLER...
    02  ABZUEGE.
        03  STEUER-SATZ...
        03  STEUER-BETRAG...
        03  VORSCHUSS...
    02  LOHN.
        03  ARBEITSSTUNDEN...
        03  AUSZAHLUNG...
    02  NETTO-ZAHLUNG...
    02  ARBEITER-NAME.
        03  SCHICHT-KENNZAHL...


Entsprechend den Regeln für die CORRESPONDING-Angabe finden folgende Subtraktionen statt:

1. Operand

2. Operand

ARBEITSSTUNDEN OF LOHN OF

ARBEITER-SATZ

ARBEITSSTUNDEN OF LOHN OF LOHN-KONTROLLE

AUSZAHLUNG OF LOHN OF ARBEITER-SATZ

AUSZAHLUNG OF LOHN OF LOHN-KONTROLLE


Die folgenden Felder werden aus den aufgeführten Gründen nicht subtrahiert.

Feld

Begründung

ARBEITER-NR

Feld ist in keiner der beiden Gruppen ein Element

ARBEITS-ORT OF ARBEITER-NR OF

ARBEITER-SATZ

Name kommt nicht in LOHN-KONTROLLE vor

STECHUHR-NR OF ARBEITER-NR

Feld ist in einer Gruppe kein Element

SCHICHT-KENNZAHL OF STECHUHR-NR OF

ARBEITER-NR OF ARBEITER-SATZ

Qualifizierung ist nicht identisch in LOHN-KONTROLLE

KONTROLL-NR OF STECHUHR-NR OF

ARBEITER-NR OF ARBEITER-SATZ

Name kommt in LOHN-KONTROLLE nicht vor

LOHN

Name ist in keiner der beiden Gruppen ein Element

STEUER-SATZ OF ARBEITER-SATZ

Qualifizierung ist nicht identisch inLOHN-KONTROLLE

ABZUEGE

Feld ist in einer Gruppe kein Element