Variante 1 (Werteliste / Filter)
* Liste mit Benutzernamen
DATA(lv_users) = |'USER1', 'USER2'|.
* WHERE-Condition zusammenbauen
DATA(lv_where_condition) = |bname IN ({ lv_users })|.
TRY.
DATA: it_usr TYPE STANDARD TABLE OF usr02 WITH DEFAULT KEY.
SELECT * FROM usr02 INTO TABLE @it_usr WHERE (lv_where_condition).
IF sy-subrc = 0.
SORT: it_usr BY trdat DESCENDING bname ASCENDING.
WRITE: / |USER \| DATE \| TIME \| CREATED|.
WRITE: / |-------------------------------------------------|.
LOOP AT it_usr ASSIGNING FIELD-SYMBOL(<usr>).
WRITE: / <usr>-bname, '|', <usr>-trdat, '|', <usr>-ltime, '|', <usr>-erdat.
ENDLOOP.
ENDIF.
CATCH cx_root INTO DATA(e_txt).
WRITE: / e_txt->get_text( ).
ENDTRY.
Variante 2 (Mehrzeilige WHERE-Bedingung)
* Liste mit Benutzernamen
DATA(lv_users) = |'USER1', 'USER2'|.
* Erstelldatum
DATA(lv_erdat) = |20100101|.
* WHERE-Condition zusammenbauen
DATA(it_where_condition) = VALUE stringtab( ( |bname IN ({ lv_users })| )
( |AND erdat > '{ lv_erdat }'| ) ).
TRY.
DATA: it_usr TYPE STANDARD TABLE OF usr02 WITH DEFAULT KEY.
SELECT * FROM usr02 INTO TABLE @it_usr WHERE (it_where_condition).
IF sy-subrc = 0.
SORT: it_usr BY trdat DESCENDING bname ASCENDING.
WRITE: / |USER \| DATE \| TIME \| CREATED|.
WRITE: / |-------------------------------------------------|.
LOOP AT it_usr ASSIGNING FIELD-SYMBOL(<usr>).
WRITE: / <usr>-bname, '|', <usr>-trdat, '|', <usr>-ltime, '|', <usr>-erdat.
ENDLOOP.
ENDIF.
CATCH cx_root INTO DATA(e_txt).
WRITE: / e_txt->get_text( ).
ENDTRY.