物料分類特性查詢


REPORT  zpp_rp024.
TABLES: mara.

TYPE-POOLS: slis.
DATA: fieldcat TYPE lvc_t_fcat,
      fieldcat_ln TYPE lvc_s_fcat,
      g_user_command TYPE slis_formname VALUE 'USER_COMMAND',
      git_events TYPE slis_t_event.    "ALV 事件
DATA : ps_layout TYPE lvc_s_layo.

DATA:BEGIN OF itab OCCURS 0,
  objek LIKE inob-objek,   "物料
  maktx like makt-maktx,
  class LIKE klah-class,   " 分類
  kschl LIKE swor-kschl,   "分類描述
  atinn LIKE cabn-atinn,  "特性
  atnam LIKE cabn-atnam,   "特性名稱
  atbez LIKE cabnt-atbez,   "特性描述
  atwrt LIKE cawn-atwrt,   "特性值
  atwtb LIKE cawnt-atwtb,  "特性值文本

END OF itab.

SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE t1.
SELECT-OPTIONS:s_matnr FOR mara-matnr.
SELECTION-SCREEN END OF BLOCK b1.

INITIALIZATION.
  t1 '選擇條件'.

START-OF-SELECTION.
  PERFORM get_data.

END-OF-SELECTION.
  PERFORM write_data.
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_data .
  SELECT inob~objek cawn~atinn cawn~atwrt cawnt~atwtb klah~class
         cabnt~atbez cabn~atnam swor~kschl
   INTO CORRESPONDING FIELDS OF TABLE itab
   FROM inob
   JOIN kssk ON kssk~objek inob~cuobj
            AND kssk~klart '300'
   JOIN klah ON klah~clint kssk~clint
   JOIN swor ON swor~clint kssk~clint
            AND swor~spras sy-langu
   JOIN ksml ON ksml~clint kssk~clint
            AND ksml~adzhl kssk~adzhl
   JOIN cawn ON cawn~atinn ksml~imerk
            AND cawn~adzhl ksml~adzhl
   JOIN cawnt ON cawnt~atinn cawn~atinn
                  AND cawnt~atzhl cawn~atzhl
                  AND cawnt~spras sy-langu
   JOIN cabn ON cawn~atinn cabn~atinn
   JOIN cabnt ON cabnt~atinn cawn~atinn
             AND cabnt~spras sy-langu
   WHERE inob~objek IN s_matnr
     AND inob~obtab 'MARA'
     AND inob~klart '300'.

    loop at itab.
       select single maktx into itab-maktx
       from makt
       where matnr itab-objek
         and spras sy-langu.
         modify itab.
    endloop.
ENDFORM.                    " GET_DATA
*&---------------------------------------------------------------------*
*&      Form  WRITE_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM write_data .
  CLEAR fieldcat.
  REFRESH fieldcat.

  DATA : col_pos TYPE VALUE 1.
  ps_layout-zebra             'X'.
  ps_layout-cwidth_opt        'X'.
*----------------------------------------------------------------------*
*& Rerference
*& 1_col_pos 2_fieldname 4_scrtext_l
*----------------------------------------------------------------------*
  PERFORM field USING col_pos 'OBJEK'  '物料' 'X'.
  PERFORM field USING col_pos 'MAKTX'  '物料描述' ''.
  PERFORM field USING col_pos ' CLASS'  '分類' ''.
  PERFORM field USING col_pos ' KSCHL'  '分類描述' ''.
  PERFORM field USING col_pos 'ATNAM'  '特性' ''.
  PERFORM field USING col_pos 'ATBEZ'  '特性描述' ''.
  PERFORM field USING col_pos 'ATWRT'  '特性值' ''.
  PERFORM field USING col_pos 'ATWTB'  '特性值文本' ''.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program sy-cprog
      is_layout_lvc      ps_layout
      it_fieldcat_lvc    fieldcat
      i_callback_user_command  'USER_COMMAND'
    TABLES
      t_outtab           itab
    EXCEPTIONS
      program_error      1
      OTHERS             2.
ENDFORM.                    " WRITE_DATA
*&---------------------------------------------------------------------*
*&      Form  FIELD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_COL_POS  text
*      -->P_0191   text
*      -->P_0192   text
*      -->P_ENDFORM  text
*----------------------------------------------------------------------*
FORM field  USING p_col_pos         " 1
                            p_fieldname       " 2
                            p_seltext_l
                            p_zero.      " 4.
  fieldcat_ln-col_pos       p_col_pos.
  fieldcat_ln-fieldname     p_fieldname.
  fieldcat_ln-reptext       p_seltext_l.
  fieldcat_ln-no_zero      p_zero.
  APPEND fieldcat_ln TO fieldcat.
  p_col_pos p_col_pos + 1.
  CLEAR: fieldcat_ln.
ENDFORM.                    " FIELD
*&---------------------------------------------------------------------*
*&      Form  usercommand
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM      text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM user_command   USING r_ucomm LIKE sy-ucomm
                     rs_selfield TYPE slis_selfield.
  DATA:str(2),
       line TYPE i.
  CASE r_ucomm.
    WHEN '&IC1'.
      CASE rs_selfield-sel_tab_field.
        WHEN  '1-OBJEK'.
          SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
          SET PARAMETER ID 'MXX' FIELD 'C'.    *           “Table T132,決定顯示哪個視圖
          CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
      ENDCASE.
  ENDCASE.
ENDFORM.                    "user_command
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章