Positioning WRITE Output on the List
You can position the output of a WRITE statement on the list by making a format specification before the field name as follows:
Syntax
WRITE AT [/][<pos>][(<len>)] <f>.
where
• the slash '/' denotes a new line,
• <pos> is a number or variable up to three digits long denoting the position on the screen,
• <len> is a number or variable up to three digits long denoting the output length.
If the format specification contains only direct values (that is, no variables), you can omit the keyword AT.
WRITE 'First line.'.
WRITE 'Still first line.' WRITE / 'Second line.' WRITE /13 'Third line.'
This generates the following output on the screen:
First Line. Still first line.
Second line.
Third line.
If you specify a certain position <pos>, the field is always placed in that position regardless of whether or not there is enough space available or whether other fields are overwritten.
DATA: len TYPE i VALUE 10, pos TYPE i VALUE 11,
text(10) TYPE c VALUE '1234567890'
WRITE 'The text --- appears in the text.'.
WRITE AT pos(len) text.
This produces the following output:
The text -1234567890- appears in the text.
If the output length <len> is too short, fewer characters are displayed. Numeric fields are truncated on the left and prefixed with an asterisk (*). All other fields are truncated on the right, but no indication is given that the field is shorter.
DATA: number TYPE i VALUE 1234567890, text(10) TYPE c VALUE 'abcdefghij'.
Positioning WRITE Output on the List WRITE: (5) number, /(5) text.
This produces the following output:
*7890 abcde
In the default setting, you cannot create empty lines with the WRITE statement. You learn more about empty lines and how to change the default setting under Inserting Blank Lines [Page 830]
in the section 'Creating Lists'.
WRITE: 'One', / ' ', / 'Two'.
This produces the following output:
One Two
The system suppresses lines that contain nothing but blanks.
Formatting Options
Formatting Options
You can use various formatting options with the WRITE statement.
Syntax
WRITE .... <f> <option>.
Formatting options for all data types
Option Function
LEFT-JUSTIFIED Output is left-justified.
CENTERED Output is centered.
RIGHT-JUSTIFIED Output is right-justified.
UNDER <g> Output starts directly under field <g>.
NO-GAP The blank after field <f> is omitted.
USING EDIT MASK <m> Specifies format template <m>.
USING NO EDIT MASK Deactivates a format template specified in the ABAP Dictionary.
NO-ZERO If a field contains only zeros, these are replaced by blanks. For type C and N fields, leading zeros are replaced automatically.
Formatting options for numeric fields Option Function
NO-SIGN The leading sign is not displayed on the screen.
DECIMALS <d> <d> defines the number of digits after the decimal point.
EXPONENT <e> In type F fields, the exponent is defined in <e>.
ROUND <r> Type P fields are multiplied by 10**(-r) and then rounded.
CURRENCY <c> Format according to currency <c> in table TCURX.
UNIT <u> The number of decimal places is fixed according to unit <u> specified in table T006 for type P fields.
Formatting options for date fields Option Function
DD/MM/YY Separators as defined in user’s master record.
MM/DD/YY Separators as defined in user’s master record.
DD/MM/YYYY Separators as defined in user’s master record.
MM/DD/YYYY Separators as defined in user’s master record.
Formatting Options DDMMYY No separators.
MMDDYY No separators.
YYMMDD No separators.
For more information on formatting options and the exclusion principles for some of these options, see the keyword documentation of the WRITE statement.
Below are some examples of formatting options. For more examples, see Creating Complex Lists [Page 817]. The decimal character and thousands separators (period or comma) of numeric fields are defined in the user’s master record
ABAP Code Screen output
DATA: g(5) TYPE c VALUE 'Hello', f(5) TYPE c VALUE 'Dolly'.
WRITE: g, f.
WRITE: /10 g,
/ f UNDER g.
WRITE: / g NO-GAP, f.
Hello Dolly Hello Dolly HelloDolly DATA time TYPE t VALUE '154633'.
WRITE: time,
/(8) time USING EDIT MASK '__:__:__'. 154633 15:46:33 WRITE: '000123',
/ '000123' NO-ZERO. 000123 123 DATA float TYPE f VALUE '123456789.0'.
WRITE float EXPONENT 3.
123456,789E+03 DATA pack TYPE p VALUE '123.456'
DECIMALS 3.
WRITE pack DECIMALS 2.
WRITE: / pack ROUND -2, / pack ROUND -1, / pack ROUND 1, / pack ROUND 2.
123,46 12.345,600 1.234,560 12,346 1,235 WRITE: sy-datum,
/ sy-datum yymmdd. 27.06.1995 950627
Apart from the formatting options shown in the above tables, you can also use the formatting options of the FORMAT statement. These options allow you to specify the intensity and color of your output. For more information, see The FORMAT Statement [Page 868].
Formatting Options