Есть идеи, как добавить нули между знаком Q
и количеством?
У меня есть знак Q
и количество как:
- пример 1: Q10
- пример 2: Q300
Код:
DATA variable TYPE c LENGTH 7 VALUE 'Q'
Ожидание:
- из примера 1: Q 0000 10
- из примера 2: Q 000 300
Спасибо.
Есть идеи, как добавить нули между знаком Q
и количеством?
У меня есть знак Q
и количество как:
Код:
DATA variable TYPE c LENGTH 7 VALUE 'Q'
Ожидание:
Спасибо.
Множество решений. Один из них (ABAP> = 7.02):
DATA(quantity) = 153.
DATA(variable) = |Q{ quantity WIDTH = 6 ALIGN = RIGHT PAD = '0' }|.
ASSERT variable = 'Q000153'.
NB:
|...|
называется строковым шаблоном а>{ ... }
внутри строкового шаблона называется Выражение шаблона строкиWIDTH
, ALIGN
и PAD
называются "параметры форматирования "строковых шаблонных выраженийВам нужно разделить числовую и альфа-цифровую части. Затем вы можете использовать числовую часть кода ниже:
write lv_text to lv_text right-justified.
translate lv_text using ' 0'.
Также вы можете использовать функциональный модуль CONVERSION_EXIT_ALPHA_INPUT только для числовых переменных.
Затем объедините две части.
Другое возможное решение - использовать любой элемент данных QM DDIC в строковых шаблонах, используя его преобразование, как предлагает mkysoft:
DATA qty TYPE vbeln VALUE '10' .
DATA(result) = 'Q' && CONV char6( |{ qty ALPHA = IN }| ).