Szukaj…
Literały
ABAP oferuje trzy różne operatory do deklarowania zmiennych łańcuchowych lub znakowych
| Symbolika | Rodzaj wewnętrzny | Długość | Nazwa |
|---|---|---|---|
| „...” | do | 1-255 znaków | literały pola tekstowego |
| `...` | Ciąg c | 0–255 znaków | literały ciągów tekstowych |
| | ... | | Ciąg c | 0–255 znaków | literały szablonów |
Należy pamiętać, że zakres długości dotyczy tylko wartości zakodowanych na stałe. CString wewnętrzne CString mają dowolną długość, podczas gdy zmienne typu C zawsze mają stałą długość.
Szablony ciągów
Szablony ciągów to wygodny sposób mieszania literałów z wartościami ze zmiennych:
WRITE |Hello, { lv_name }, nice to meet you!|.
Może także formatować takie rzeczy jak daty. Aby użyć formatu daty zalogowanego użytkownika:
WRITE |The order was completed on { lv_date DATE = USER } and can not be changed|.
Obsługiwane są wywołania i wyrażenia metod funkcjonalnych:
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' ) }|.
Uwaga! Bezpośrednie wdrożenie wyników tymczasowych (takich jak wywołania metod) w szablonach ciągów może prowadzić do poważnych problemów z wydajnością (więcej na ten temat tutaj ). Chociaż używanie go w rzadko wykonywanych instrukcjach jest w porządku, powoduje, że twój program gwałtownie zwalnia w pętlach.
Łańcuchy łączące
Zmienne łańcuchowe i znakowe można łączyć za pomocą polecenia ABAP CONCATENATE . Wymagana jest dodatkowa zmienna do przechowywania wyników.
Przykład:
CONCATENATE var1 var2 var3 INTO result.
"result now contains the values of var1, var2 & var3 stringed together without spaces
Stenografia
Nowsze wersje ABAP oferują bardzo krótki wariant konkatenacji przy użyciu && (operator łańcuchowy).
DATA(lw_result) = `Sum: ` && lw_sum.
Uwaga! Warto zauważyć, że stosowanie tymczasowych wyników w połączeniu z operatorem Łańcuch wewnątrz pętli może prowadzić do ogromnych problemów z wydajnością z powodu rosnącej liczby instrukcji kopiowania (więcej na ten temat tutaj ).