Поиск…
литералы
ABAP предлагает три разных оператора для объявления строковых или char-подобных переменных
| Символы | Внутренний тип | длина | название |
|---|---|---|---|
| '...' | С | 1-255 Chars | текстовые полевые литералы |
| `...` | CString | 0-255 символов | текстовые строковые литералы |
| | ... | | CString | 0-255 символов | шаблонные литералы |
Обратите внимание, что диапазон длины применяется только к жестко закодированным значениям. Внутренне переменные CString имеют произвольную длину, а переменные типа C всегда имеют фиксированную длину.
Строковые шаблоны
Строковые шаблоны - это удобный способ смешивания литералов с значениями из переменных:
WRITE |Hello, { lv_name }, nice to meet you!|.
Он также может форматировать такие вещи, как даты. Чтобы использовать формат даты входа в систему:
WRITE |The order was completed on { lv_date DATE = USER } and can not be changed|.
Поддерживаются вызовы функциональных методов и выражения:
WRITE |Your token is { to_upper( lv_token ) }|.
WRITE |Version is: { cond #( when lv_date < sy-datum then 'out of date' else 'up to date' ) }|.
Внимание! Прямое внедрение временных результатов (например, методов-вызовов) внутри шаблонов строк может привести к серьезным проблемам с производительностью (подробнее об этом читайте здесь ). Хотя использование его внутри редко исполняемых утверждений в порядке, это заставляет вашу программу быстро замедляться в циклах.
Конкатенация строк
Строковые и char-подобные переменные могут быть объединены с помощью команды ABAP CONCATENATE . Требуется дополнительная переменная для хранения результатов.
Пример:
CONCATENATE var1 var2 var3 INTO result.
"result now contains the values of var1, var2 & var3 stringed together without spaces
стенография
Более поздние версии ABAP предлагают очень короткий вариант конкатенации с использованием && (оператор цепочки).
DATA(lw_result) = `Sum: ` && lw_sum.
Внимание! Стоит отметить, что использование временных результатов в сочетании с оператором Chaining внутри петель может привести к огромным проблемам с производительностью из-за растущих инструкций по копированию (подробнее об этом здесь ).