Zum Hauptinhalt springen

ABAP: Führende Nullen in Variablen bearbeiten

Nullen hinzufügen

Sollte im Feld bereits eine Zahl stehen, so werden nur führende Nullen hinzugefügt (wie eine Maske).

DATA lv_text(10) TYPE c.

SHIFT lv_text RIGHT DELETING TRAILING SPACE.
OVERLAY lv_text WITH '0000000000'.
Resultat:

Vorher:

lv_text = '123'

Nachher:

lv_text = '0000000123'

Nullen löschen

SHIFT lv_text LEFT DELETING LEADING '0'.

Alternative:

Neben der eben gezeigten Variante, welche unabhängig von den hinterlegten Datenelementen und -domänen funktioniert, gibt es auch noch den Standard-Konvertierungsbaustein. Bei der Konvertierung vom externen in das interne Format wird geprüft, ob die Eingabe in Feld INPUT rein numerisch ist, also nur aus Ziffern, möglicherweise mit Leerzeichen davor und/oder dahinter, besteht.

  • Wenn ja, dann wird die Ziffernfolge rechtsbündig in das Ausgabefeld OUTPUT gestellt, und dieses wird links mit Nullen ('0') aufgefüllt.
  • Andernfalls wird die Zeichenfolge von links nach rechts in das Ausgabefeld übertragen, und dieses wird rechts mit Leerzeichen aufgefüllt.
DATA
: lv_string TYPE CHAR4
, lv_fevor TYPE fevor
.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = lv_string
IMPORTING
OUTPUT = lv_fevor
.
Resultat Numerisch:

Vorher:

lv_string = '1'

Nachher:

lv_fevor = '001'

Resultat Alphanumerisch:

Vorher:

INPUT = 'A'

Nachher:

OUTPUT = 'A '