Absolute Positionsangaben 

Nach absoluten Positionsangaben erfolgt die nächste Ausgabe in fest vorgegebenen Spalten und Zeilen.

Horizontale Positionsangaben

Sie haben zwei Möglichkeiten, die horizontale Ausgabeposition anzugeben:

Den Zusatz AT der Anweisungen WRITE und ULINE (siehe WRITE-Ausgabedaten auf der Liste positionieren) und die Anweisung POSITION. Die Anweisung POSITION hat folgende Syntax:

Syntax

POSITION <col>.

Diese Anweisung setzt die horizontale Ausgabeposition und das Systemfeld SY-COLNO auf <col>. Liegt <col> außerhalb der Seite, werden die nachfolgenden Ausgabeanweisungen ignoriert.

Das System schreibt eine auf POSITION folgende, bzw. mit AT aufbereitete WRITE-Ausgabe an die angegebene Stelle, unabhängig davon, ob genügend Platz vorhanden ist oder nicht. Der Teil der Ausgabe, der nicht mehr auf die Zeile passt, wird abgeschnitten. Weitere WRITE-Ausgaben finden dann in der nächsten Zeile statt.

Vertikale Positionsangaben

So geben Sie die vertikale Ausgabeposition an:

Syntax

SKIP TO LINE <n>.

Diese Anweisung setzt die vertikale Ausgabeposition und das Systemfeld SY-LINNO auf <lin>. Liegt <lin> nicht zwischen 1 und der Seitenlänge, wird die Anweisung ignoriert.

Bei der Angabe von LINE zählen der Seitenkopf und Seitenfuß mit. Achten Sie darauf, nicht unbeabsichtigt Kopf- oder Fußzeilen zu überschreiben.

Ausgabe unter Seitenkopf positionieren

Mit der Anweisung BACK können Sie die Ausgabe auf die ersten Zeile nach dem geesamten Seitenkopf positionieren:

Syntax

BACK.

Steht diese Anweisung nicht hinter einer RESERVE-Anweisung, so erfolgt die nächste Ausgabe unter dem Seitenkopf. SY-COLNO wird auf 1 und SY-LINNO entsprechend der Länge des Seitenkopfs gesetzt. In Verbindung mit RESERVE gilt eine andere Regel (siehe Relative Positionsangaben).

Wird die Anweisung BACK zum Zeitpunkt TOP-OF-PAGE durchgeführt, wird die Ausgabeposition nicht unter den gesamten Seitenkopf, sondern unter den Standardseitenkopf positioniert, so daß nachfolgende Ausgaben den unter TOP-OF-PAGE selbstdefinierten Seitenkopf überschreiben.

Beispiel für absolute Positionsangaben

REPORT demo_list_position NO STANDARD PAGE HEADING LINE-SIZE 60.

DATA: x(3) TYPE c, y(3) TYPE c.

x = sy-colno. y = sy-linno.

TOP-OF-PAGE.

  WRITE: 'Position of Header: ', x, y.
  ULINE.

START-OF-SELECTION.

  SKIP TO LINE 10.
  POSITION 20.
  x = sy-colno. y = sy-linno.
  WRITE: '* <- Position', x, y.

  SKIP TO LINE 12.
  ULINE AT 20(20).

  BACK.
  x = sy-colno. y = sy-linno.
  WRITE: 'Position after BACK:', x, y.

Dieses Programm erzeugt folgende Listenseite:

Die Anfangswerte von SY-COLNO und SY-LINNO werden den Feldern X und Y zugewiesen. Beachten Sie, daß diese Zuweisung eigentlich zum Zeitpunkt START-OF-SELECTION stattfindet (siehe Verarbeitungsblöcke definieren). Die anfängliche Ausgabeposition ist die der ersten Kopfzeile und wird dort auch ausgegeben. Über SKIP TO LINE und POSITION wird ein Stern '*' in Spalte 20, Zeile 10 plaziert. Ein Unterstrich wird über SKIP TO LINE und AT positioniert. Schließlich wird die Ausgabeposition mit BACK auf Spalte 1, Zeile 3 unter den zweizeiligen Seitenkopf gesetzt.