Text Elements
Text elements allow you to store texts without hard-coding them in your program. You can maintain text
elements outside the program in which they are used (choose Goto →
Text elements in the Editor). They are particularly important for texts in applications that
will be translated into other languages.
All programs (including include program) have a title.
Other text elemen are assigned to the associated main program.
ABAP has the following kinds of text element:
-
Program title
-
List heading
-
Column heading
-
Selection texts (for texts belonging to selection criteria and program parameters)
-
Text symbols (constant texts)
The construction of text elements is defined by the structure TEXTPOOL. It contains the following fields:
- ID:
-
A single character, representing the text element type. You can use the following values:
R - Program title
T
- List heading
H - Column heading
S - Selection text
I - Text symbol
- KEY:
-
Key field, which may contain the following values, depending on the type of the text element:
H - Number of a row with columns
-headings
(001 - 004)
S - max. 8 character name of a selection
criterion or program parameter
I - 3 character number for a text symbol
The field is empty for program titles and list headings.
- ENTRY:
-
Text of the text element (maximum 255 characters)
- LENGTH:
-
Length of the text
Example
The following table displays some typical values for text elements:
ID |
KEY |
ENTRY |
LENGTH |
H |
001 |
Name Age |
10 |
I |
100 |
Tax |
10 |
R |
, |
Test program |
12 |
S |
CUST |
Customer |
8 |
T |
, |
Sales |
10 |
|
Notes
-
LENGTH determines the total available length for the text.
If the text is to be translated into other languages, you should choose a value of
LENGTH that is greater than the length required in the original language, to allow for translations that are longer than the original language version.
-
You can address text elements in two ways, either using TEXT-xxx
or using
'...'(xxx). Here, xxx
stands for the number, and ... for the text of the text
symbol.
The first form requires that there is already a text for number xxx.
If there is not, the output is empty.
The second form improves the readability of the program.
The text in inverted commas should correspond to the text stored under the text symbol. If it does not,
the system uses the text stored for the text symbol. Exception: If there is no text saved under number
xxx, the text in inverted commas is used.
Example:
Text symbol number
001 has the text 'Please
enter your name'. The following commands:
WRITE:
/ TEXT-001,
/ 'Please enter your name'(001),
/ 'What is your name?'(001).
all have the
same output: "Please enter your name".
You can
compare the texts used in the program with the texts stored as text symbols by choosing "Goto → Text elements → Compare text symbols" in the Editor.
-
If you set a LENGTH for the text element that is longer
than the text itself, this is interpreted as though the text had trailing spaces up to the specified
LENGTH. This means that if you use the notation '...'(xxx),
the text between the inverted commas must have trailing zeros up to the length
LENGTH. Otherwise, the text stored under the text symbol
will not correspond with the text in inverted commas (see note 2).
Example: Suppose text symbol
number
036 has the contents 'Name',
and length 10. The following statement: folgende Befehl
WRITE: / SY-VLINE, TEXT-036, SY-VLINE,
/ SY-VLINE,
'Tax '(036), SY-VLINE,
/ SY-VLINE, 'Tax'(036), SY-VLINE.
would then output "| Tax |" three times. In particular,
in the third line, the text symbol number 036 is output
in length 10, and not the three-character text "Tax".
If you compare the text elements (see note 2), the text symbols in the second and third lines are flagged as being different.
-
You should not use text symbols in subroutines that have more than one main program, since this leads
to redundant text and unnecessary translation.
Instead, you should store these portions of code in subroutine pools.