Давайте чуть доточим, чтобы было оптимальней
Code:
DATA: lt_szauth_usr TYPE STANDARD TABLE OF /BI0/OICOMP_CODE. "см.в SELECT = на компоненте надо было
FIELD-SYMBOLS: <fs_szauth_usr> LIKE LINE OF lt_szauth_usr.
WHEN 'ZAUTH_COUNTRY'.
SELECT distinct country "зачем нам много одинаковых значений, правда?
INTO TABLE lt_szauth_usr "поле одно, мы знаем куда его положить :) небудем тратить время
FROM /bic/szauth_usr
WHERE /bic/zauth_usr EQ sy-uname
AND country > space. "так для эффективней для SQL-оптимизатора.
"Но как он работает, наверно в мире знают едининицы...
CHECK SY-SUBRC EQ 0. "сразу проверяем результат SELECT (можно и if написать)
CLEAR l_s_range. "достаточно первого раза
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
LOOP AT lt_szauth_usr ASSIGNING <fs_szauth_usr>.
l_s_range-low = <fs_szauth_usr>-TABLE_LINE. "специфика работы с табличкой с неименоваанным полем
APPEND l_s_range TO e_t_range.
ENDLOOP.
Да, ещё можно проверку на I_STEP поставить...