И еще один бонус. Есть такая штука, которая использовалась в старом Report Writer, как списки значений. Их можно заводить плоскими, многоуровневыми (иерархическими) в транзакциях GS01 — GS03.

А потом в абапе читать и подставлять в переменные. Удобно использовать для инициализации селекционных экранов отчетов, так как записи в запросы не складываются. Это слегка усложненный вариант STVARV (транзакция).

DATA: et_values TYPE TABLE OF rgsb4.
DATA: es_values TYPE rgsb4.

CALL FUNCTION ‘G_SET_GET_ALL_VALUES’
EXPORTING
setnr = ‘ZABS_SENIOR’
table = ‘T554S’
class = ‘0000’
fieldname = ‘SUBTY’
TABLES
set_values = et_values
EXCEPTIONS
set_not_found = 1
OTHERS = 2.

DATA: er_awart TYPE RANGE OF t554s-subty.
DATA: es_awart LIKE LINE OF er_awart.
LOOP AT et_values INTO es_values.
es_awart-sign = ‘I’.
es_awart-option = ‘BT’.
es_awart-low = es_values-from.
es_awart-high = es_values-to.
APPEND es_awart TO er_awart.
ENDLOOP.