1.
Nachträgliches überschreibendes Positionieren von
SY-VLINE
Schlechtes Coding:
WRITE / AT 2 '℥℥℥'.
WRITE AT
1 sy-vline.
WRITE AT 4 sy-vline.
WRITE AT
7 sy-vline.
WRITE AT
10 sy-vline.
Empfohlene Lösung:
·
WRITE AT
1 sy-vline.
WRITE AT 2 '℥'.
WRITE AT 4 sy-vline.
WRITE AT 5 '℥'.
WRITE AT 7 sy-vline.
WRITE AT 8 '℥'.
WRITE AT 10 sy-vline.
·
2.
Rechtsbündige Ausgabe mit
RIGHT-JUSTIFIED:
Schlechtes Coding:
DATA text(10) TYPE c.
text = '℥℥℥'.
WRITE text TO text
RIGHT-JUSTIFIED.
WRITE text.
Empfohlene Lösung:
DATA text(10) type c.
text = '℥℥℥'.
WRITE text
RIGHT-JUSTIFIED.
3.
Ausgabe des vollständigen Inhaltes
Schlechtes Coding:
DATA text(10) TYPE c.
text = 'OTTOS MOPS'.
WRITE / text.
text = '℥℥℥℥℥℥℥℥℥℥'.
WRITE / text.
Empfohlene Lösung:
DATA text(10) TYPE c.
text = 'OTTOS MOPS'.
WRITE / (*) text.
text = '℥℥℥℥℥℥℥℥℥℥'.
WRITE / (*) text.
4.
Blättern:
Schlechtes Coding:
TYPES t_line(100) TYPE c.
DATA: line TYPE
t_line,
tab TYPE
table of t_line.
PARAMETERS scrolcol TYPE i DEFAULT 14.
line = '℥℥℥℥℥℥℥℥℥℥℥℥℥℥'.
APPEND line TO tab.
line = '℥℥℥℥℥℥℥℥℥℥℥℥℥℥'.
APPEND line TO tab.
LOOP AT tab INTO line.
WRITE / line+scrolcol.
ENDLOOP.
Empfohlene Lösung:
TYPES t_line(100) TYPE
c.
DATA: line TYPE
t_line,
tab TYPE
table of t_line.
PARAMETERS scrolcol TYPE i DEFAULT 14.
line = '℥℥℥℥℥℥℥℥℥℥℥℥℥℥'.
APPEND line TO tab.
line = '℥℥℥℥℥℥℥℥℥℥℥℥℥℥'.
APPEND line TO tab.
LOOP AT tab INTO line.
WRITE / line.
ENDLOOP.
SCROLL LIST TO COLUMN
scrolcol.
5. Vermischen von Ausgabe- und Pufferlänge
Das Beispiel bezieht sich auf die
Datenbanktabelle ZCHNUMBERS im ABAP Dictionary, die als Inhalt die
Bezeichnungen der Zahlen 1 bis 5 in Englisch und Koreanisch enthalten
soll.
Schlechtes Coding:
SELECT * FROM zchnumbers INTO wa ORDER BY num lang.
WRITE wa-lang TO line(2).
WRITE sy-vline TO line+2(1).
WRITE wa-name TO line+3(5).
WRITE sy-vline TO line+8(1).
WRITE wa-num TO line+9(3) RIGHT-JUSTIFIED.
WRITE / line.
ENDSELECT.
Empfohlene Lösung:
DATA: offset_tab TYPE abap_offset_tab.
APPEND 3 TO offset_tab.
APPEND 8 TO offset_tab.
SELECT * FROM zchnumbers INTO wa.
WRITE wa-lang TO line(2).
WRITE sy-vline TO line+2(1).
WRITE wa-name TO line+3(5).
WRITE sy-vline TO line+8(1).
WRIE wa-num TO line+9(3)
RIGHT-JUSTIFIED.
CALL METHOD cl_abap_list_utilities=>memory_to_display
EXPORTING memory_data = line
offset_tab = offset_tab
IMPORTING display_data = disp_line.
WRITE / disp_line.
ENDSELECT.
6.
Misbrauch des Systemfeldes SY-CUCOL als
Puffer-Offset
Schlechtes Coding:
DATA: off type i.
AT LINE-SELECTION.
off = sy-staco + sy-cucol
– 3.
sy-lisel+off(1) =
'-'.
MODIFY CURRENT
LINE.
START-OF-SELECTION.
WRITE / '℥'.
WRITE at 50(14) '℥℥℥℥℥'.
SCROLL LIST TO COLUMN
20.
Empfohlene Lösung:
DATA:
f TYPE string,
mo TYPE i.
AT LINE-SELECTION.
GET CURSOR FIELD f MEMORY OFFSET mo.
sy-lisel+mo(1) = '-'.
MODIFY CURRENT
LINE.
Anmerkung:
Das Zeichen ℥ wird als Platzhalter für
die Darstellung ostasiatischer Zeichen verwendet.