Code: Alles auswählen.
* pi_snr ist vom Typ c(24) und beinhaltet die Seriennummer
DATA: lv_snr TYPE string,
lv_laenge_snr TYPE i, " Länge SNr
lv_anz_stellen TYPE i " Anzahl Stellen, die die SNR verschoben werden soll
.
* Die Seriennr soll auf 6 oder 10 Stellen aufgefüllt werden
lv_snr = pi_snr.
lv_laenge_snr = strlen( lv_snr ).
CLEAR lv_anz_stellen.
* Seriennr auf 6 oder 10 Stellen erweitern
IF lv_laenge_snr < 6.
lv_anz_stellen = 6 - lv_laenge_snr.
ELSEIF lv_laenge_snr > 6 AND lv_laenge_snr < 10.
lv_anz_stellen = 10 - lv_laenge_snr.
ENDIF.
IF lv_anz_stellen IS NOT INITIAL.
SHIFT lv_snr BY lv_anz_stellen PLACES RIGHT.
lv_laenge_snr = strlen( lv_snr ). " Debug
ENDIF.
OVERLAY lv_snr WITH '0000000000'.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Murdock
Gruß,Murdock hat geschrieben: Dass es am Datentyp von lv_snr (c(24)) lag, ist mir ja klar. Was aber so verwirrend ist, dass ABAP mir sagt, die Variable sei nur mit 6 Stellen gefüllt, behandelt sie dann aber doch so, als ob sie 24 Stellen hätte... Kann da jemand mal ein, zwei klärende Worte zu sagen?![]()