Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 2.46 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Report  YARTHUR3
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8.  
  9. REPORT  yarthur3.
  10.  
  11. TYPES: BEGIN OF ty_mara,
  12.          matnr  TYPE mara-matnr,
  13.        END OF ty_mara,
  14.  
  15.        BEGIN OF ty_makt,
  16.          matnr  TYPE makt-matnr,
  17.          spras  TYPE makt-spras,
  18.          maktx  TYPE makt-maktx,
  19.        END OF ty_makt.
  20.  
  21. DATA: ti_mara     TYPE STANDARD TABLE OF ty_mara,
  22.       ti_mara_aux TYPE STANDARD TABLE OF ty_mara,
  23.       ti_makt     TYPE STANDARD TABLE OF ty_makt.
  24.  
  25. DATA: wa_mara     TYPE ty_mara,
  26.       wa_makt     TYPE ty_makt.
  27.  
  28. DATA: v_matnr TYPE mara-matnr,
  29.       v_langu TYPE sy-langu.
  30.  
  31. SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME.
  32.  
  33. SELECTION-SCREEN: BEGIN OF BLOCK b02 WITH FRAME TITLE text-001.
  34.  
  35. SELECT-OPTIONS: s_matnr FOR v_matnr NO INTERVALS.
  36. PARAMETERS: p_max TYPE i.
  37.  
  38. SELECTION-SCREEN: END OF BLOCK b02.
  39.  
  40. SELECTION-SCREEN: BEGIN OF BLOCK asc WITH FRAME TITLE text-002.
  41.  
  42. PARAMETERS: p_rb1 TYPE c RADIOBUTTON GROUP grp,
  43.             p_rb2 TYPE c RADIOBUTTON GROUP grp,
  44.             p_rb3 TYPE c RADIOBUTTON GROUP grp.
  45.  
  46. SELECTION-SCREEN: END OF BLOCK asc.
  47.  
  48. SELECTION-SCREEN: END OF BLOCK b01.
  49.  
  50. START-OF-SELECTION.
  51.  
  52.   SELECT matnr UP TO p_max rows
  53.     FROM mara
  54.     INTO TABLE ti_mara
  55.    WHERE matnr IN s_matnr.
  56.   IF sy-subrc = 0.
  57.  
  58.     IF p_rb1 = 'X'.
  59.       v_langu = sy-langu.
  60.  
  61.     ELSE.
  62.       IF p_rb2 = 'X'.
  63.         v_langu = 'P'.
  64.       ElSE.
  65.         v_langu = 'S'.
  66.       ENDIF.
  67.     ENDIF.
  68.  
  69.     ti_mara_aux = ti_mara.
  70.     SORT ti_mara_aux BY matnr.
  71.     DELETE ADJACENT DUPLICATES FROM ti_mara_aux COMPARING matnr.
  72.  
  73.     SELECT matnr spras maktx
  74.       FROM makt
  75.       INTO TABLE ti_makt
  76.        FOR ALL ENTRIES IN ti_mara_aux
  77.      WHERE matnr = ti_mara_aux-matnr
  78.        AND spras = v_langu.
  79.     IF sy-subrc is INITIAL.
  80.  
  81.       sort ti_makt by matnr.
  82.  
  83.       LOOP AT ti_mara INTO wa_mara.
  84.  
  85.         READ TABLE ti_makt
  86.               into wa_makt
  87.               WITH KEY matnr = wa_mara-matnr
  88.               BINARY SEARCH.
  89.         IF sy-subrc = 0.
  90.           write: / wa_mara-matnr, wa_makt-spras, wa_makt-maktx.
  91.         ELSE.
  92.           write: / wa_mara-matnr.
  93.         ENDIF.
  94.  
  95.         IF s_matnr is INITIAL.
  96.           IF sy-tabix = p_max.
  97.             exit.
  98.           ENDIF.
  99.         ENDIF.
  100.  
  101.       ENDLOOP.
  102.  
  103.     ENDIF.
  104.  
  105.   ENDIF.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement