REPORT zz_r3tr_tabu LINE-SIZE 255.
*** Variablen
DATA:
lt_e071 LIKE e071 OCCURS 0 WITH HEADER LINE,
lt_e071k LIKE e071k OCCURS 0 WITH HEADER LINE,
lt_data LIKE t005 OCCURS 0 WITH HEADER LINE,
lv_checkbox TYPE c,
tr_order LIKE e071-trkorr,
tr_task LIKE e071-trkorr.
*** Selektionsbild
SELECT-OPTIONS:
s_land1 FOR lt_data-land1.
START-OF-SELECTION.
*** Liststatus mit Funktionscode "SICH"
SET PF-STATUS '1'.
*** Selektion der Länder
SELECT * FROM t005 INTO TABLE lt_data
WHERE land1 IN s_land1.
*** Ausgabe
LOOP AT lt_data.
WRITE /1 lv_checkbox AS CHECKBOX INPUT ON.
WRITE lt_data-land1.
ENDLOOP.
END-OF-SELECTION.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'SICH'.
*** Sichern: Aufnahme der markierten Einträge
REFRESH: lt_e071, lt_e071k.
*** Auswahl eines Auftrags
CALL FUNCTION 'TRINT_ORDER_CHOICE'
EXPORTING
wi_order_type = 'W'
wi_task_type = 'Q'
wi_category = 'CUST'
IMPORTING
we_order = tr_order
we_task = tr_task
TABLES
wt_e071 = lt_e071
wt_e071k = lt_e071k
EXCEPTIONS
OTHERS = 6.
CHECK sy-subrc = 0.
DO.
*** Markierte Länder ermitteln
READ LINE sy-index FIELD VALUE
lv_checkbox lt_data-land1.
IF sy-subrc > 0.
*** Ende der Liste
EXIT.
ELSEIF lv_checkbox <> space.
*** E071 füllen
lt_e071-trkorr = space.
lt_e071-as4pos = 0.
lt_e071-pgmid = 'R3TR'.
lt_e071-object = 'TABU'.
lt_e071-obj_name = 'T005'.
lt_e071-objfunc = 'K'.
COLLECT lt_e071.
*** E071K - Schlüsseleinträge füllen
lt_e071k-trkorr = space.
lt_e071k-pgmid = 'R3TR'.
lt_e071k-object = 'TABU'.
lt_e071k-objname = 'T005'.
lt_e071k-as4pos = 0.
lt_e071k-mastertype = 'TABU'.
lt_e071k-mastername = 'T005'.
lt_e071k-viewname = space.
lt_e071k-objfunc = space.
*** Schlüssel basteln
CONCATENATE sy-mandt lt_data-land1
INTO lt_e071k-tabkey.
COLLECT lt_e071k.
ENDIF.
ENDDO.
IF NOT lt_e071k[] IS INITIAL.
*** Aufnahme der Einträge in Transportauftrag
CALL FUNCTION 'TR_APPEND_TO_COMM_OBJS_KEYS'
EXPORTING
wi_trkorr = tr_task
TABLES
wt_e071 = lt_e071
wt_e071k = lt_e071k
EXCEPTIONS
OTHERS = 68.
IF sy-subrc = 0.
MESSAGE s000(vz)
with 'Einträge aufgenommen in Transport' tr_order.
ENDIF.
ENDIF.
ENDCASE.