物料分類特性查詢
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 i 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.