Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report YARTHUR3
- *&
- *&---------------------------------------------------------------------*
- *&
- *&
- *&---------------------------------------------------------------------*
- REPORT yarthur3.
- TYPES: BEGIN OF ty_mara,
- matnr TYPE mara-matnr,
- END OF ty_mara,
- BEGIN OF ty_makt,
- matnr TYPE makt-matnr,
- spras TYPE makt-spras,
- maktx TYPE makt-maktx,
- END OF ty_makt.
- DATA: ti_mara TYPE STANDARD TABLE OF ty_mara,
- ti_mara_aux TYPE STANDARD TABLE OF ty_mara,
- ti_makt TYPE STANDARD TABLE OF ty_makt.
- DATA: wa_mara TYPE ty_mara,
- wa_makt TYPE ty_makt.
- DATA: v_matnr TYPE mara-matnr,
- v_langu TYPE sy-langu.
- SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME.
- SELECTION-SCREEN: BEGIN OF BLOCK b02 WITH FRAME TITLE text-001.
- SELECT-OPTIONS: s_matnr FOR v_matnr NO INTERVALS.
- PARAMETERS: p_max TYPE i.
- SELECTION-SCREEN: END OF BLOCK b02.
- SELECTION-SCREEN: BEGIN OF BLOCK asc WITH FRAME TITLE text-002.
- PARAMETERS: p_rb1 TYPE c RADIOBUTTON GROUP grp,
- p_rb2 TYPE c RADIOBUTTON GROUP grp,
- p_rb3 TYPE c RADIOBUTTON GROUP grp.
- SELECTION-SCREEN: END OF BLOCK asc.
- SELECTION-SCREEN: END OF BLOCK b01.
- START-OF-SELECTION.
- SELECT matnr UP TO p_max rows
- FROM mara
- INTO TABLE ti_mara
- WHERE matnr IN s_matnr.
- IF sy-subrc = 0.
- IF p_rb1 = 'X'.
- v_langu = sy-langu.
- ELSE.
- IF p_rb2 = 'X'.
- v_langu = 'P'.
- ElSE.
- v_langu = 'S'.
- ENDIF.
- ENDIF.
- ti_mara_aux = ti_mara.
- SORT ti_mara_aux BY matnr.
- DELETE ADJACENT DUPLICATES FROM ti_mara_aux COMPARING matnr.
- SELECT matnr spras maktx
- FROM makt
- INTO TABLE ti_makt
- FOR ALL ENTRIES IN ti_mara_aux
- WHERE matnr = ti_mara_aux-matnr
- AND spras = v_langu.
- IF sy-subrc is INITIAL.
- sort ti_makt by matnr.
- LOOP AT ti_mara INTO wa_mara.
- READ TABLE ti_makt
- into wa_makt
- WITH KEY matnr = wa_mara-matnr
- BINARY SEARCH.
- IF sy-subrc = 0.
- write: / wa_mara-matnr, wa_makt-spras, wa_makt-maktx.
- ELSE.
- write: / wa_mara-matnr.
- ENDIF.
- IF s_matnr is INITIAL.
- IF sy-tabix = p_max.
- exit.
- ENDIF.
- ENDIF.
- ENDLOOP.
- ENDIF.
- ENDIF.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement