物料分类特性查询


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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值