Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

LINE-Klausel

&pagelevel(4)&pagelevel

Funktion

Die LINE-Klausel ordnet den in ihrem Gültigkeitsbereich definierten druckfähigen Feldern (siehe „COLUMN-Klausel") jeweils diejenige Zeile einer Seite der Liste zu, auf welche sie gedruckt werden. In spezieller Anwendung dient sie nur zum Seitenvorschub.

Format


LINE NUMBER IS {ganzzahl-1 | PLUS ganzzahl-2 | NEXT PAGE}


Syntaxregeln

  1. ganzzahl-1 und ganzzahl-2 dürfen nur als vorzeichenlose ganze Zahlen angegeben werden. ganzzahl-1 muss größer oder gleich 1 sein, ganzzahl-2 muss größer oder gleich 0 sein. Der Wert von ganzzahl-1 oder ganzzahl-2 darf 999 nicht überschreiten.

  2. Als absolut wird eine LINE-Klausel der Alternative mit ganzzahl-1 bezeichnet. ganzzahl-1 ist als Zeilennummer zu interpretieren. Bei der Erstellung der betroffenen Leiste gibt ganzzahl-1 also jene Zeile der aktuellen Druckseite der Liste an, auf welche die zu der LINE-Klausel gehörigen und daher als Zeile organisierten druckfähigen Felder letztlich gedruckt werden. So definiert eine absolute LINE-Klausel immer eine Druckzeile.

  3. Als relativ gilt eine LINE-Klausel, die mit der Alternative PLUS ganzzahl-2 gebildet wird. Die Zeile, auf welche die zu einer relativen LINE-Klausel gehörigen druckfähigen Felder in der Zeit, in der die betroffene Leiste erzeugt wird, gedruckt werden, wird relativ zu der zuletzt vorgenommenen vertikalen Positionierung bestimmt. Dazu wird die Summe aus der Nummer der Zeile, auf die zuletzt positioniert wurde (siehe „NEXTGROUP-Klausel" und „LINE-COUNTER-Sonderregister"), und der ganzzahl-2 gebildet. Die Summe gibt die Nummer der aktuellen Druckzeile wieder.

    Abweichungen von den obigen Regeln gibt es nur für spezielle Leistentypen, wenn die relative LINE-Klausel für die erste Zeile der Leiste verwendet wurde. Diese Abweichungen werden an geeigneter Stelle angeführt.

  4. Eine LINE-Klausel mit der Angabe NEXT PAGE bewirkt, dass die zugehörige Leiste auf eine freie Seite (meistens die nächste Seite) gedruckt wird. Der Vorschub findet also noch vor dem Druck der Leiste statt.

    Ob eine LINE-Klausel mit der Angabe NEXT PAGE noch zusätzlich eine Druckzeile bestimmt, kann den nachfolgenden Regeln entnommen werden.

Allgemeine Regeln

Die nachfolgenden Programmierregeln werden in zwei Kategorien - die allgemeinen Regeln und die Regeln für Leistentypen - eingeteilt. Die Regeln der letzteren Kategorie beschreiben die Verwendung der LINE-Klausel in der Beschreibung der verschiedenen Leistentypen.

Die Abkürzungen, die in den Regeln für Leistentypen verwendet werden, haben folgende Bedeutung:

Abkürzung

Bedeutung

A

R

NP

eine oder mehrere absolute LINE-Klauseln

eine oder mehrere relative LINE-Klausel

neine LINE-Klausel mit NEXT PAGE-Angabe

  1. Ein druckfähiges Feld einer Leiste, das auf eine Zeile einer Seite der Liste gedruckt werden soll, muss entweder selbst in seiner Beschreibung eine LINE-Klausel enthalten oder seiner Beschreibung muss innerhalb der zugehörigen Leistenerklärungen eine LINE-Klausel vorausgehen. Umgekehrt werden alle druckfähigen Felder, die in der entsprechenden Leistenerklärung auf die LINE-Klausel bis zur nächsten LINE-Klausel oder dem Ende der Leistenerklärung folgen, auf die durch die LINE-Klausel bestimmte Zeile gedruckt. Nachfolgende druckfähige Felder aus der Leistenerklärung werden analog zusammengefasst in Zeilen gedruckt.

  2. Die vertikalen Positionierungsparameter (LINE- und NEXT PAGE-Klauseln) müssen für die einzelnen Leistentypen so gewählt werden, dass diese Leisten innerhalb der für sie vorgesehenen Seitenzonen gedruckt werden können (siehe auch „PAGELIMIT-Klau-sel" und „TYPE-Klausel"). Eine Fortsetzung der Leiste in der für sie spezifischen Zone einer anderen Seite ist nicht möglich.

    Wenn eine Rumpfleiste nur deswegen keinen Platz in ihrer spezifischen Zone findet, weil ein Teil dieser Zone nicht mehr zur Verfügung steht, dann wird sie als Ganzes in die gleiche Zone der nächsten Seite gedruckt, nachdem zuerst der Seitenfuß auf der alten Seite und der Seitenkopf auf der neuen Seite erstellt wurde.

  3. Wenn in einer Leistenerklärung absolute LINE-Klauseln (eine oder mehrere) enthalten sind, dann müssen sie alle

    1. vor der ersten (falls vorhanden) relativen LINE-Klausel,

    2. sowie in der Reihenfolge aufsteigender Ganzzahlen angegeben sein.

  4. Die LINE-Klausel mit der Angabe NEXT PAGE darf nur in einer Leistenerklärung (01-Stufe) zur Positionierung auf die nächste Seite angegeben werden.

Syntaxregeln für Leistentypen

  1. Listenkopf

    Die folgenden Reihenfolgen von LINE-Klauseln dürfen in der Leistenbeschreibung des Listenkopfes verwendet werden:

    {A | A R}

  2. Seitenkopf

    In der Leistenerklärung des Seitenkopfes sind lediglich folgende Reihenfolgen von LINE-Klauseln zulässig:

    {A  | A R | R}

    Wenn die erste LINE-Klausel aus der Beschreibung des Seitenkopfes relativ ist, dann wird im Allgemeinen die erste Zeile der Leiste relativ zu der Zonengrenze ganzzahl-h der PAGE LIMIT-Klausel (siehe „PAGE LIMIT-Klausel") gedruckt. Nur wenn der Listenkopf auf derselben Seite gedruckt wurde, ergibt sich insofern eine Abweichung, als die erste Zeile der Leiste relativ zu der vertikalen Positionierung, die aus der Erstellung des Listenkopfes resultiert, gedruckt wird.

  3. Rumpfleisten

    Als Rumpfleisten werden Postenleisten, Gruppenköpfe und Gruppenfüße bezeichnet.

    1. Die Beschreibung einer Rumpfleiste darf LINE-Klauseln in einer der folgenden Reihenfolgen enthalten:

      {NP | NP A  | NP A R | NP R | A | A R | R}

    2. Die LINE-Klausel mit der Angabe NEXT PAGE der Reihenfolge NP A oder NP A R dient nicht zur Bestimmung einer Druckzeile, sondern nur zum Seitenvorschub. Es muss also die erste absolute LINE-Klausel in oder vor der Beschreibung des ersten druckfähigen Feldes angegeben sein.

    3. Die LINE-Klausel mit der Angabe NEXT PAGE als einzige LINE-Klausel oder als eine mit der Reihenfolge NP R impliziert neben dem Seitenvorschub auch die vertikale Positionierung der ersten Zeile der Leiste.

    4. Die LINE-Klausel mit der Angabe NEXT PAGE in der Beschreibung einer Rumpfleiste signalisiert dem Listenprogramm, die Rumpfleiste auf die nächste noch nicht durch eine Rumpfleiste belegte Seite zu drucken. So kann die Situation eintreten, dass kein Seitenvorschub ausgeführt wird. Dies ist sicher der Fall, wenn die Rumpfleiste als erste Rumpfleiste in der Liste gedruckt wird.

    5. Wenn eine Rumpfleiste mit der LINE-Klausel-Reihenfolge NP, NP R oder R als erste Rumpfleiste auf eine Seite gedruckt werden soll, dann wird die erste Zeile der Rumpfleiste auf die Zeile mit der Nummer ganzzahl-d aus der PAGE-Klausel
      gedruckt. Nun ist es allerdings möglich, dass z.B. durch die zuletzt gedruckte Rumpfleiste infolge einer NEXT GROUP-Klausel (siehe "NEXT GROUP-Klausel") schon eine Positionierung über die Zonengrenze ganzzahl-d hinaus vorliegt. In diesem Falle wird die erste Zeile der Rumpfleiste auf die Zeile gedruckt, die unmittelbar auf die vorliegende Positionierung folgt.

    6. Wenn eine Rumpfleiste, deren erste LINE-Klausel relativ ist, nicht als erste Rumpfleiste einer Seite gedruckt werden soll, dann wird die vorliegende Positionierung (Zeilennummer) um die Zeilenzahl, die durch ganzzahl-2 der ersten LINE-Klausel angegeben ist, vorgeschoben. Auf diese neue Position wird die erste Zeile der Rumpfleiste gedruckt.

  4. Seitenfuß

    Die Angabe der LINE-Klausel in der Beschreibung des Seitenfußes ist nur in den zwei folgenden Möglichkeiten zulässig:

    {A | A R}

  5. Listenfuß

    1. Folgende Arten von LINE-Klausel-Folgen sind in der Beschreibung des Listenfußes realisierbar:

      {NP A |NP A R| A | A R | R}

    2. Die LINE-Klausel mit der Angabe NEXT PAGE dient einzig und allein

      zum Seitenvorschub. Es muss daher die erste absolute LINE-Klausel in oder vor der Beschreibung des ersten druckfähigen Feldes auftreten, um die Positionierung der ersten Zeile der Leiste zu ermöglichen.

      Beispiel 10-4

      01  DETAIL-GRUPPE TYPE DETAIL LINE NEXT PAGE.
          02  LINE 10 COLUMN 1  PIC X(10) VALUE "1. ELEMENT".
          02          COLUMN 15 PIC X(4)  SOURCE KARTEN-FELD-1.
          02  LINE 12 COLUMN 1  PIC X(10) VALUE "2. ELEMENT".
          02          COLUMN 15 PIC 9(5)  SOURCE-ARB-FELD-1.

      Die aus zwei Zeilen sich zusammensetzende Postenleiste wird auf die Zeilen 10 und 12 einer noch nicht von anderen Rumpfleisten belegten Seite gedruckt, da die LINE-Klausel-Folge NP A vorliegt.

      Beispiel 10-5

      01  DETAIL-ZEILE LINE PLUS 1 TYPE DETAIL.
          02  COLUMN 2 GROUP INDICATE PIC A(9) SOURCE FELD-NR-1.

      Dieses Beispiel zeigt eine Postenleiste, deren Beschreibung nur eine relative LINE-Klausel enthält. Die Postenleiste wird auf die Zeile gedruckt, die sich aus der vorliegenden Position durch den Vorschub um eine Zeile ergibt. Für den Fall, dass die Postenleiste als erste Rumpfleiste der Seite gedruckt werden soll und die vorliegende Positionierung die Zonengrenze ganzzahl-d (FIRST DETAIL-Angabe der PAGE LIMIT-Klausel) nicht überschritten hat, wird die Postenleiste auf die Zeile mit der Nummer ganzzahl-d gedruckt.