On list output, automatically links certain characters together to form continuous lines or boxes, if there is no space between them:
Exactly how each line segment is output (e.g. whether as straight line, corner, T-piece or cross) depends on the adjoining characters.
A good rule of thumb sipulates that if the cell adjacent to a line character also contains a line character, the missing piece required to form a connection is added. If an adjacent cell does not also contain a line character, the line character is truncated on that side. Line characters standing on their own remain unchanged.
This technique is sufficient to cope with most cases (e.g. tables, boxes, simple hierarchies). However, no matter how carefully you use some empty characters and lines, it is not possible to stop adjacent line characters being joined in an inappropriate way (e.g. very compact hierarchy diagrams, or densely boxes). The solution here is to output the required line segment explicitly using the addition ... AS LINE.
The include <LINE> (or the more comprehensive include <LIST>) contains the relevant identifiers for lines as constants, e.g. LINE_TOP_LEFT_CORNER, LINE_BOTTOM_MIDDLE_CORNER.
Lines cannot have any other display attributes. If attributes such as color (COLOR), reverse video (INVERSE ) or intensified (INTENSIFIED) are set, these are ignored on output. If the ready for input attribute (INPUT ) is set, the actual characters (minus sign, vertical line) are displayed.
INCLUDE <LINE>. ULINE /1(50). WRITE: / SY-VLINE NO-GAP, LINE_TOP_LEFT_CORNER AS LINE. ULINE 3(48). WRITE: / SY-VLINE NO-GAP, SY-VLINE NO-GAP.