누가 물어봐서 찾아봤는데.. 안될 것 같지만, 혹시 고수께서 알고 계실까 해서 올립니다.
textpool 타입에 아예 색깔 관련 속성은 없어서 불가능하지 싶습니다만;;
참고로 dynamic 하게 설정하는걸 찾았는데.. 참조로 한 번 보실분을 위해서..
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.
이거 보니 예전에 같은 내용의 TEXTPOOL 을 매 프로그램 생성마다 다시 넣어주기 귀찮아서
프로그램으로 TEXTPOOL 생성, 변경, 삭제 해주는 프로그램을 만들던 기억이 있네요.. ㅎㅎ
사용상에는 많은 제약이 있었던 것으로 기억합니다.
제가 만든건 좀 그지 같아서 보여주기 민망하고..
Program : BCALV_TEXTPOOL_WORKOVER