POSITION pos.
This statement places the list cursor
at the position in the current line in the list buffer specified in pos.
The program expects a data object of the type i for
pos. If the value of pos is 0 or less or is
greater than the page length in sy-linsz defined with
the addition LINE-SIZE
to the program initiating statement or NEW-PAGE,
all subsequent output statements do not create any output until the list cursor is positioned within a line again.
Definition and use of a macro write_frame to draw frames around WRITE output. The POSITION statement positions the list cursor for subsequent output.
DATA: x TYPE i,
y TYPE i,
l TYPE i.
DEFINE write_frame.
x = sy-colno. y = sy-linno.
WRITE: '|' NO-GAP, &1 NO-GAP, '|' NO-GAP.
l = sy-colno - x.
y = y - 1. SKIP TO LINE y.
ULINE AT x(l).
y = y + 2. SKIP TO LINE y.
ULINE AT x(l).
y = y - 1. x = sy-colno. SKIP TO LINE y. POSITION x.
END-OF-DEFINITION.
SKIP.
WRITE 'Demonstrating'.
write_frame 'dynamic frames'.
WRITE 'in'.
write_frame 'ABAP'.
WRITE 'output lists.'.