*----------------------------------------------------------------------*
* 程序名称:物料主数据查询
* 程序名: ZMMR_MLST
* 开发日期:2012/03/20
* 创建者:xiaoaman
* 申请者:杨璐
*----------------------------------------------------------------------*
* 概要: 物料主数据查询
*
* 销售视图查询
* 分类视图查询
* 其他数据查询
* 查询和导入模板一致
*----------------------------------------------------------------------*
* 变更记录
* 2012/03/20 DEVK900972
* DESCRIPTION:
* 1.初始开发
* DEVK901254
*增加查询条件:物料类型
* 1.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
* 2.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
*2012/04/11 徐康 DEVK901582
* 修改原因:增加权限检查
*2012/04/11 徐康 DEVK902020
* 修改原因:增加权限检查
*----------------------------------------------------------------------*
REPORT zmmr_mlst
NO STANDARD PAGE HEADING
LINE-SIZE 255
LINE-COUNT 65.
TABLES:mara,makt,marc,mbew,
klah,inob,swor,kssk,"分类
mard,"库存地
mvke,mlan."销售视图
TYPES:BEGIN OF ty_alv,
matnr TYPE mara-matnr,"物料编码
mbrsh TYPE mara-mbrsh,"行业类别
mtart TYPE mara-mtart,"物料类型
werks TYPE marc-werks,"工厂
maktx TYPE makt-maktx,"物料描述
meins TYPE mara-meins,"基本单位
matkl TYPE mara-matkl,"物料组
spart TYPE mara-spart,"产品组
mstae TYPE mara-mstae,"跨工厂物料状态
brgew TYPE mara-brgew,"毛重
gewei TYPE mara-gewei,"重量单位
ntgew TYPE mara-ntgew,"净重
"分类
klart TYPE klah-klart,"类别种类
class TYPE klah-class,"类别
stdcl TYPE kssk-stdcl,"标准
"销售
vkorg TYPE mvke-vkorg,"销售组织
vtweg TYPE mvke-vtweg,"分销渠道
vrkme TYPE mvke-vrkme,"销售单位
dwerk TYPE mvke-dwerk,"交货工厂
taxm1 TYPE mlan-taxm1,"物料的税分类
kondm TYPE mvke-kondm,"物料定价组
ktgrm TYPE mvke-ktgrm,"科目设置组
mtpos TYPE mvke-mtpos,"项目类别组
mvgr1 TYPE mvke-mvgr1, "物料组1
mvgr2 TYPE mvke-mvgr2, "物料组2
mvgr3 TYPE mvke-mvgr3, "物料组3
mvgr4 TYPE mvke-mvgr4, "物料组4
mvgr5 TYPE mvke-mvgr5, "物料组5
mtvfp TYPE marc-mtvfp,"可用性检查
tragr TYPE mara-tragr,"运输组
ladgr TYPE marc-ladgr,"装载组
"
ekgrp TYPE marc-ekgrp,"采购组
xchpf TYPE marc-xchpf,"批次管理需求的标识
kordb TYPE marc-kordb,"源清单标识
dismm TYPE marc-dismm,"mrp类型
dispo TYPE marc-dispo,"mrp控制者
disls TYPE marc-disls,"批量大小
bstmi TYPE marc-bstmi,"最小批量大小
bstrf TYPE marc-bstrf,"舍入值
beskz TYPE marc-beskz,"采购类型
sobsl TYPE marc-sobsl,"特殊采购类
lgpro TYPE marc-lgpro,"生产仓储地点
rgekz TYPE marc-rgekz,"反冲
plifz TYPE marc-plifz,"计划交货时间
fhori TYPE marc-fhori,"计划边际码
eisbe TYPE marc-eisbe,"安全库存
strgr TYPE marc-strgr,"策略组
miskz TYPE marc-miskz,"综合mrp
"MTVFP TYPE MARC-MTVFP,"可用性检查
altsl TYPE marc-altsl,"选择方法
sbdkz TYPE marc-sbdkz,"独立/集中
fevor TYPE marc-fevor,"生产管理员
sfcpf TYPE marc-sfcpf,"生产计划参数文件
ueeto TYPE marc-ueeto,"过量交货允差
ueetk TYPE marc-ueetk,"无限制交货
bearz TYPE marc-bearz,"处理时间
basmg TYPE marc-basmg,"基准数量
mhdrz TYPE mara-mhdrz,"最小货架寿命
mhdhb TYPE mara-mhdhb,"总货架寿命
"会计
bklas TYPE mbew-bklas,"评估类
mlast TYPE mbew-mlast,"价格确定
vprsv TYPE mbew-vprsv,"价格控制
peinh TYPE mbew-peinh,"价格单位
bwprs TYPE mbew-bwprs,"税价1
ncost TYPE marc-ncost,"无成本核算
ekalr TYPE mbew-ekalr,"用QS的成本估算
hkmat TYPE mbew-hkmat,"物料来源
awsls TYPE marc-awsls,"差异码
losgr TYPE marc-losgr,"成本核算批量
zplp1 TYPE mbew-zplp1,"计划价格
zpld1 TYPE mbew-zpld1,"计划价格日期
verpr TYPE mbew-verpr,"移动平均价格/周期单价
"LGORT
lgort TYPE mard-lgort,"库存地点
mara_lvorm TYPE mara-lvorm,"删除标识
mard_lvorm TYPE mard-lvorm,"删除标识
marc_lvorm TYPE marc-lvorm,"删除标识
mbew_lvorm TYPE mbew-lvorm,"删除标识
mvke_lvorm TYPE mvke-lvorm,"删除标识
END OF ty_alv.
TYPES:BEGIN OF ty_mara,
matnr TYPE mara-matnr,
tragr TYPE mara-tragr,"运输组
maktx TYPE makt-maktx,
lvorm TYPE mara-lvorm,
mtart TYPE mara-mtart,
END OF ty_mara.
TYPES:BEGIN OF ty_inob,
clint TYPE klah-clint,
klart TYPE klah-klart,
class TYPE klah-class,
obtab TYPE inob-obtab,
objek TYPE inob-objek,
objek1 TYPE inob-objek,
END OF ty_inob.
TYPES:BEGIN OF ty_kssk,
objek TYPE kssk-objek,
klart TYPE kssk-klart,
clint TYPE kssk-clint,
stdcl TYPE kssk-stdcl,
END OF ty_kssk.
TYPES:BEGIN OF ty_makt,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
lvorm TYPE mara-lvorm,
mtart TYPE mara-mtart,
END OF ty_makt.
TYPES:BEGIN OF ty_mbew,
matnr TYPE mbew-matnr,
bwkey TYPE mbew-bwkey,
bklas TYPE mbew-bklas,"评估类
mlast TYPE mbew-mlast,"价格确定
vprsv TYPE mbew-vprsv,"价格控制
peinh TYPE mbew-peinh,"价格单位
bwprs TYPE mbew-bwprs,"税价1
ekalr TYPE mbew-ekalr,"用QS的成本估算
hkmat TYPE mbew-hkmat,"物料来源
zplp1 TYPE mbew-zplp1,"计划价格
zpld1 TYPE mbew-zpld1,"计划价格日期
verpr TYPE mbew-verpr,"移动平均价格/周期单价
END OF ty_mbew.
TYPES:BEGIN OF ty_marc,
matnr TYPE marc-matnr,
werks TYPE marc-werks,
mtvfp TYPE marc-mtvfp,"可用性检查
ladgr TYPE marc-ladgr,"装载组
lvorm TYPE marc-lvorm ,
vkorg TYPE mvke-vkorg,
END OF ty_marc.
TYPES:BEGIN OF ty_t001w ,
werks TYPE t001w-werks,
vkorg TYPE t001w-vkorg,
END OF ty_t001w.
****2012/04/11 徐康 规格变更 Ins 修改开始
* 修改原因:增加权限检查
TYPES:BEGIN OF ty_t001l,
werks TYPE t001l-werks,
END OF ty_t001l.
DATA:it_t001l TYPE TABLE OF ty_t001l,
wa_t001l TYPE ty_t001l.
TYPES:BEGIN OF ty_vkoeg,
vkorg TYPE likp-vkorg ," 销售组
END OF ty_vkoeg.
DATA:it_vkoeg TYPE TABLE OF ty_vkoeg,
wa_vkoeg TYPE ty_vkoeg.
****2012/04/11 徐康 规格变更 Ins 修改结束
DATA:it_alv TYPE TABLE OF ty_alv,
wa_alv TYPE ty_alv,
it_mara TYPE TABLE OF ty_mara,
wa_mara TYPE ty_mara,
it_inob TYPE TABLE OF ty_inob,
wa_inob TYPE ty_inob,
it_kssk TYPE TABLE OF ty_kssk,
wa_kssk TYPE ty_kssk,
it_makt TYPE TABLE OF ty_makt,
wa_makt TYPE ty_makt,
it_mbew TYPE TABLE OF ty_mbew,
wa_mbew TYPE ty_mbew,
it_marc TYPE TABLE OF ty_marc,
wa_marc TYPE ty_marc,
it_t001w TYPE TABLE OF ty_t001w,
wa_t001w TYPE ty_t001w.
*----------------------------------------------------------------------*
* ALV参数定义
*----------------------------------------------------------------------*
DATA: it_fieldcat TYPE lvc_t_fcat,
it_excluding
TYPE slis_t_extab,
it_events TYPE slis_t_event,
wa_fieldcat TYPE lvc_s_fcat,
wa_layout TYPE lvc_s_layo,
wa_sort TYPE lvc_s_sort,
it_sort TYPE lvc_t_sort.
*----------------------------------------------------------------------*
* Selection Screen
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK blk_rb WITH FRAME TITLE text-f01.
PARAMETERS: rb1 RADIOBUTTON GROUP rb DEFAULT 'X' "基础和其他视图数据
USER-COMMAND scr,
rb2 RADIOBUTTON GROUP rb,"销售视图
rb3 RADIOBUTTON GROUP rb,"分类视图
rb4 RADIOBUTTON GROUP rb."库存地
SELECTION-SCREEN END OF BLOCK blk_rb.
*----------------------------------------------------------------------*
* Selection Screen
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text-f02.
SELECT-OPTIONS: s_matnr FOR mara-matnr,
s_mtart FOR mara-mtart,
s_werks FOR marc-werks MODIF ID b1,
s_vkorg FOR mvke-vkorg MODIF ID b2,
s_vtweg FOR mvke-vtweg MODIF ID b2,
s_klart FOR klah-klart DEFAULT '023'
MODIF ID b3,
s_class FOR klah-class DEFAULT 'ZYH_MCH1'
MODIF ID b3,
s_werks1 FOR marc-werks MODIF ID b4,
s_lgort FOR mard-lgort MODIF ID b4.
SELECTION-SCREEN END OF BLOCK blk.
AT SELECTION-SCREEN.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 IS NOT INITIAL.
CASE screen-group1.
WHEN 'B1'.
IF rb1 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
MODIFY SCREEN.
WHEN 'B2'.
IF rb2 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
MODIFY SCREEN.
WHEN 'B3'.
IF rb3 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
MODIFY SCREEN.
WHEN 'B4'.
IF rb4 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
MODIFY SCREEN.
ENDCASE.
ENDIF.
ENDLOOP.
START-OF-SELECTION.
IF rb1 EQ 'X'.
****2012/04/11 徐康 规格变更 Ins 修改开始
******在此进行权限对象的检查 "检查【工厂】
FREE:it_t001l.
SELECT werks
INTO TABLE it_t001l
FROM t001w
WHERE werks IN s_werks.
sort it_t001l by werks.
DELETE ADJACENT DUPLICATES FROM it_t001l COMPARING ALL FIELDS.
LOOP AT it_t001l INTO wa_t001l.
AUTHORITY-CHECK OBJECT 'M_MATE_WRK'
ID 'WERKS' FIELD wa_t001l-werks
ID 'ACTVT' DUMMY
.
IF sy-subrc <> 0.
"MESSAGE e054(ZMM_DEV) WITH wa_t001l-werks.
else.
DELETE TABLE it_t001l from wa_t001l.
ENDIF.
ENDLOOP.
SORT it_t001l by werks.
******检查结束
****2012/04/11 徐康 规格变更 Ins 修改结束
PERFORM frm_get_base.
ENDIF.
IF rb2 EQ 'X'.
****2012/04/11 徐康 规格变更 Ins 修改开始
******在此进行权限对象的检查
free:it_vkoeg.
SELECT vkorg
FROM TVKO
INTO TABLE it_vkoeg
WHERE vkorg IN s_vkorg.
DELETE ADJACENT DUPLICATES FROM it_vkoeg COMPARING ALL FIELDS.
LOOP AT it_vkoeg INTO wa_vkoeg.
AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
ID 'VKORG' FIELD wa_vkoeg-vkorg .
IF sy-subrc <> 0.
* MESSAGE e092(zsd_dev) WITH wa_vkoeg-vkorg.
else.
DELETE TABLE it_vkoeg from wa_vkoeg.
ENDIF.
ENDLOOP.
SORT it_vkoeg by VKORG.
******检查结束
****2012/04/11 徐康 规格变更 Ins 修改结束
PERFORM frm_get_mvke.
ENDIF.
IF rb3 EQ 'X'.
PERFORM frm_get_class.
ENDIF.
IF rb4 EQ 'X'.
****2012/04/11 徐康 规格变更 Ins 修改开始
******在此进行权限对象的检查 "检查【工厂】
FREE:it_t001l.
SELECT werks
INTO TABLE it_t001l
FROM t001w
WHERE werks IN s_werks.
sort it_t001l by werks.
DELETE ADJACENT DUPLICATES FROM it_t001l COMPARING ALL FIELDS.
LOOP AT it_t001l INTO wa_t001l.
AUTHORITY-CHECK OBJECT 'M_MATE_WRK'
ID 'WERKS' FIELD wa_t001l-werks
ID 'ACTVT' DUMMY
.
IF sy-subrc <> 0.
"MESSAGE e054(ZMM_DEV) WITH wa_t001l-werks.
else.
DELETE TABLE it_t001l from wa_t001l.
ENDIF.
ENDLOOP.
SORT it_t001l by werks.
******检查结束
******检查结束
****2012/04/11 徐康 规格变更 Ins 修改结束
PERFORM frm_get_mard.
ENDIF.
IF it_alv IS INITIAL.
MESSAGE s002(zmm_dev).
LEAVE LIST-PROCESSING .
ENDIF.
PERFORM frm_init_layout.
PERFORM frm_init_fieldcat.
PERFORM frm_event_build.
PERFORM frm_alv_output.
*&---------------------------------------------------------------------*
*& Form FRM_GET_BASE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_base .
SELECT
mara~matnr"物料编码
mara~mbrsh"行业类别
mara~mtart"物料类型
marc~werks"工厂
makt~maktx"物料描述
mara~meins"基本单位
mara~matkl"物料组
mara~spart"产品组
mara~mstae"跨工厂物料状态
mara~brgew"毛重
mara~gewei"重量单位
mara~ntgew"净重
marc~ekgrp"采购组
marc~xchpf"批次管理需求的标识
marc~kordb"源清单标识
marc~dismm"mrp类型
marc~dispo"mrp控制者
marc~disls"批量大小
marc~bstmi"最小批量大小
marc~bstrf"舍入值
marc~beskz"采购类型
marc~sobsl"特殊采购类
marc~lgpro"生产仓储地点
marc~rgekz"反冲
marc~plifz"计划交货时间
marc~fhori"计划边际码
marc~eisbe"安全库存
marc~strgr"策略组
marc~miskz"综合mrp
marc~mtvfp"可用性检查
marc~altsl"选择方法
marc~sbdkz"独立/集中
marc~fevor"生产管理员
marc~sfcpf"生产计划参数文件
marc~ueeto"过量交货允差
marc~ueetk"无限制交货
marc~bearz"处理时间
marc~basmg"基准数量
mara~mhdrz"最小货架寿命
mara~mhdhb"总货架寿命
marc~ncost "无成本核算
marc~awsls "差异码
marc~losgr "成本核算批量
mara~lvorm AS mara_lvorm"删除标识
marc~lvorm AS marc_lvorm" 删除标识
INTO CORRESPONDING FIELDS OF TABLE it_alv
FROM mara INNER JOIN marc ON marc~matnr EQ mara~matnr
LEFT JOIN makt ON makt~matnr EQ mara~matnr AND
makt~spras EQ sy-langu
WHERE mara~matnr IN s_matnr AND
mara~mtart IN s_mtart AND
marc~matnr IN s_matnr AND
marc~werks IN s_werks.
* ****2012/04/11 徐康 规格变更 Ins 修改开始
******在此进行权限对象的检查 "检查【工厂】
LOOP AT it_alv INTO wa_alv.
READ TABLE it_t001l INTO wa_t001l WITH KEY werks = wa_alv-werks
BINARY SEARCH.
IF sy-subrc EQ 0.
DELETE TABLE it_alv FROM wa_alv.
ENDIF.
ENDLOOP.
FREE it_t001l.
******检查结束
****2012/04/11 徐康 规格变更 Ins 修改结束
IF it_alv IS INITIAL.
MESSAGE s002(zmm_dev).
LEAVE LIST-PROCESSING .
ENDIF.
"权限检查是否有财务视图权限
"CODE
"会计
AUTHORITY-CHECK OBJECT 'M_MATE_STA'
ID 'ACTVT' DUMMY
ID 'STATM' FIELD 'B'."显示财务视图
CHECK sy-subrc EQ 0.
SELECT
mbew~matnr
mbew~bwkey
mbew~bklas"评估类
mbew~mlast"价格确定
mbew~vprsv"价格控制
mbew~peinh"价格单位
mbew~bwprs"税价1
mbew~ekalr"用QS的成本估算
mbew~hkmat"物料来源
mbew~zplp1"计划价格
mbew~zpld1"计划价格日期
mbew~verpr"移动平均价格/周期单价
INTO TABLE it_mbew
FROM mbew
WHERE mbew~matnr IN s_matnr AND
mbew~bwkey IN s_werks.
SORT it_mbew BY matnr bwkey.
CHECK it_mbew IS NOT INITIAL.
LOOP AT it_alv INTO wa_alv.
READ TABLE it_mbew INTO wa_mbew WITH KEY matnr = wa_alv-matnr
bwkey = wa_alv-werks
BINARY SEARCH.
IF sy-subrc EQ 0.
wa_alv-bklas = wa_mbew-bklas.
wa_alv-mlast = wa_mbew-mlast.
wa_alv-vprsv = wa_mbew-vprsv.
wa_alv-peinh = wa_mbew-peinh.
wa_alv-bwprs = wa_mbew-bwprs.
wa_alv-ekalr = wa_mbew-ekalr.
wa_alv-hkmat = wa_mbew-hkmat.
wa_alv-zplp1 = wa_mbew-zplp1.
wa_alv-zpld1 = wa_mbew-zpld1.
wa_alv-verpr = wa_mbew-verpr.
MODIFY it_alv FROM wa_alv.
ENDIF.
CLEAR:wa_alv,wa_mbew.
ENDLOOP.
FREE it_mbew.
ENDFORM. " FRM_GET_BASE
*&---------------------------------------------------------------------*
*& Form FRM_GET_MVKE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_mvke .
SELECT
mvke~matnr
mvke~vkorg"销售组织
mvke~vtweg"分销渠道
mvke~vrkme"销售单位
mvke~dwerk"交货工厂
mlan~taxm1"物料的税分类
mvke~kondm"物料定价组
mvke~ktgrm"科目设置组
mvke~mtpos"项目类别组
mvke~mvgr1 "物料组1
mvke~mvgr2 "物料组2
mvke~mvgr3 "物料组3
mvke~mvgr4 "物料组4
mvke~mvgr5
mvke~lvorm AS mvke_lvorm "删除标示
* marc~mtvfp"可用性检查
* "MARA~TRAGR"运输组
* marc~ladgr"装载组
* marc~lvorm as marc_lvorm
INTO CORRESPONDING FIELDS OF TABLE it_alv
FROM mvke LEFT JOIN mlan ON mlan~matnr EQ mvke~matnr AND
mlan~aland EQ 'CN'
* LEFT JOIN marc ON marc~matnr EQ mvke~matnr AND
* marc~werks EQ mvke~dwerk
WHERE mvke~vkorg IN s_vkorg AND
mvke~vtweg IN s_vtweg AND
mvke~matnr IN s_matnr.
****2012/04/11 徐康 规格变更 Ins 修改开始
******在此进行权限对象的检查
LOOP AT it_alv INTO wa_alv.
READ TABLE it_vkoeg INTO wa_vkoeg WITH KEY vkorg = wa_alv-vkorg
BINARY SEARCH.
IF sy-subrc EQ 0.
DELETE TABLE it_alv FROM wa_alv.
ENDIF.
ENDLOOP.
SORT it_vkoeg by VKORG.
******检查结束
****2012/04/11 徐康 规格变更 Ins 修改结束
IF it_alv IS INITIAL.
MESSAGE s002(zmm_dev).
LEAVE LIST-PROCESSING .
ENDIF.
* SELECT t001w~werks
* t001w~vkorg
* INTO TABLE it_t001w
* FROM t001w
* WHERE t001w~vkorg IN s_vkorg.
" IF it_t001w IS NOT INITIAL.
SELECT marc~matnr
marc~werks
marc~mtvfp"可用性检查
marc~ladgr"装载组
marc~lvorm
INTO TABLE it_marc
FROM marc
" FOR ALL ENTRIES IN it_t001w
WHERE marc~matnr IN s_matnr ."AND
" marc~werks EQ it_t001w-werks.
" ENDIF.
SELECT mara~matnr
mara~tragr
makt~maktx
mara~lvorm
mara~mtart
INTO TABLE it_mara
FROM mara LEFT JOIN makt ON makt~matnr EQ mara~matnr AND
makt~spras EQ sy-langu
WHERE mara~matnr IN s_matnr AND
mara~mtart IN s_mtart.
SORT it_mara BY matnr.
SORT it_marc BY werks matnr.
LOOP AT it_alv INTO wa_alv.
" READ TABLE it_t001w INTO wa_t001w WITH KEY vkorg = wa_alv-vkorg.
READ TABLE it_marc INTO wa_marc WITH KEY werks = wa_alv-dwerk
matnr = wa_alv-matnr
BINARY SEARCH.
wa_alv-mtvfp = wa_marc-mtvfp.
wa_alv-ladgr = wa_marc-ladgr.
wa_alv-marc_lvorm = wa_marc-lvorm.
READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_alv-matnr
BINARY SEARCH.
IF sy-subrc EQ 0.
wa_alv-tragr = wa_mara-tragr.
wa_alv-maktx = wa_mara-maktx.
wa_alv-mara_lvorm = wa_mara-lvorm.
wa_alv-mtart = wa_mara-mtart.
MODIFY it_alv FROM wa_alv .
ELSE.
DELETE it_alv.
ENDIF.
CLEAR:wa_alv,wa_mara.
ENDLOOP.
FREE:it_mara,it_t001w,it_marc.
ENDFORM. " FRM_GET_MVKE
*&---------------------------------------------------------------------*
*& Form FRM_GET_CLASS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_class .
SELECT
klah~clint
klah~klart
klah~class
inob~obtab
inob~objek
inob~cuobj AS objek1
INTO CORRESPONDING FIELDS OF TABLE it_inob
FROM inob INNER JOIN klah ON klah~klart EQ inob~klart
WHERE inob~objek IN s_matnr AND
inob~klart IN s_klart AND
klah~class IN s_class AND
inob~obtab EQ 'MARA'.
IF it_inob IS INITIAL.
MESSAGE s002(zmm_dev).
LEAVE LIST-PROCESSING .
ENDIF.
SELECT
kssk~objek
kssk~klart
kssk~clint
kssk~stdcl
INTO TABLE it_kssk
FROM kssk
FOR ALL ENTRIES IN it_inob
WHERE kssk~objek EQ it_inob-objek1 AND
kssk~klart EQ it_inob-klart AND
kssk~clint EQ it_inob-clint.
SELECT makt~matnr
makt~maktx
mara~lvorm
mara~mtart
INTO TABLE it_makt
FROM mara LEFT JOIN makt ON makt~matnr EQ mara~matnr AND
makt~spras EQ sy-langu
WHERE mara~matnr IN s_matnr AND
mara~mtart IN s_mtart.
SORT it_makt BY matnr.
SORT it_kssk BY objek klart clint.
LOOP AT it_inob INTO wa_inob.
wa_alv-matnr = wa_inob-objek.
wa_alv-klart = wa_inob-klart.
wa_alv-class = wa_inob-class.
READ TABLE it_kssk INTO wa_kssk WITH KEY objek = wa_inob-objek1
klart = wa_inob-klart
clint = wa_inob-clint
BINARY SEARCH.
IF sy-subrc EQ 0.
wa_alv-stdcl = wa_kssk-stdcl.
ENDIF.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_alv-matnr
BINARY SEARCH.
IF sy-subrc EQ 0.
wa_alv-maktx = wa_makt-maktx.
wa_alv-mtart = wa_makt-mtart.
wa_alv-mara_lvorm = wa_makt-lvorm.
APPEND wa_alv TO it_alv.
ENDIF.
CLEAR:wa_alv,wa_inob,wa_kssk.
ENDLOOP.
FREE: it_kssk,it_inob,it_makt.
ENDFORM. " FRM_GET_CLASS
*&---------------------------------------------------------------------*
*& Form FRM_GET_MARD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_mard .
SELECT mard~matnr
mard~werks
mard~lgort
mard~lvorm AS mard_lvorm
" MAKT~MAKTX
INTO CORRESPONDING FIELDS OF TABLE it_alv
FROM mard "LEFT JOIN MAKT ON MAKT~MATNR EQ MARD~MATNR AND
" MAKT~SPRAS EQ SY-LANGU
WHERE mard~werks IN s_werks1 AND
mard~lgort IN s_lgort AND
mard~matnr IN s_matnr.
****2012/04/11 徐康 规格变更 Ins 修改开始
******在此进行权限对象的检查 "检查【工厂】
LOOP AT it_alv INTO wa_alv.
READ TABLE it_t001l INTO wa_t001l WITH KEY werks = wa_alv-werks
BINARY SEARCH.
IF sy-subrc EQ 0.
DELETE TABLE it_alv FROM wa_alv.
ENDIF.
ENDLOOP.
FREE it_t001l.
******检查结束
****2012/04/11 徐康 规格变更 Ins 修改结束
IF it_alv IS INITIAL.
MESSAGE s002(zmm_dev).
LEAVE LIST-PROCESSING .
ENDIF.
****2012/4/12 张显 规格变更 Ins 修改开始
* 修改原因:查询工厂删除视图标记
SELECT marc~matnr
marc~werks
marc~mtvfp"可用性检查
marc~ladgr"装载组
marc~lvorm
INTO TABLE it_marc
FROM marc
WHERE marc~werks in s_werks1 and
marc~matnr IN s_matnr .
****2012/4/12 张显 规格变更 Ins 修改结束
SELECT makt~matnr
makt~maktx
mara~lvorm
mara~mtart
INTO TABLE it_makt
FROM mara LEFT JOIN makt ON makt~matnr EQ mara~matnr AND
makt~spras EQ sy-langu
WHERE mara~matnr IN s_matnr AND
mara~mtart IN s_mtart.
SORT it_makt BY matnr.
sort it_marc by werks matnr.
LOOP AT it_alv INTO wa_alv.
READ TABLE it_marc INTO wa_marc with key werks = wa_alv-werks
matnr = wa_alv-matnr
BINARY SEARCH.
wa_alv-marc_lvorm = wa_marc-lvorm.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_alv-matnr
BINARY SEARCH.
wa_alv-maktx = wa_makt-maktx.
wa_alv-mtart = wa_makt-mtart.
wa_alv-mara_lvorm = wa_makt-lvorm.
MODIFY it_alv FROM wa_alv .
CLEAR:wa_alv,wa_makt,wa_marc.
ENDLOOP.
FREE: it_makt,it_marc.
ENDFORM. " FRM_GET_MARD
*&---------------------------------------------------------------------*
*& Form FRM_INIT_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_init_layout .
wa_layout-zebra = 'X'.
wa_layout-cwidth_opt = 'X'.
wa_layout-detailinit = 'X'.
" WA_LAYOUT-BOX_FNAME = 'BOX'.
ENDFORM. " FRM_INIT_LAYOUT
*&---------------------------------------------------------------------*
*& Form FRM_INIT_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_init_fieldcat .
FREE it_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'MATNR'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-coltext = text-001.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MTART'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'MTART'.
wa_fieldcat-coltext = text-003.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
IF rb1 EQ 'X'.
wa_fieldcat-fieldname = 'MBRSH'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'MBRSH'.
wa_fieldcat-coltext = text-002.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'WERKS'.
wa_fieldcat-coltext = text-004.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDIF.
wa_fieldcat-fieldname = 'MAKTX'.
wa_fieldcat-ref_table = 'MAKT'.
wa_fieldcat-ref_field = 'MAKTX'.
wa_fieldcat-coltext = text-005.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
IF rb1 EQ 'X'.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'MEINS'.
wa_fieldcat-coltext = text-006.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATKL'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'MATKL'.
wa_fieldcat-coltext = text-007.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'SPART'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'SPART'.
wa_fieldcat-coltext = text-008.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MSTAE'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'MSTAE'.
wa_fieldcat-coltext = text-009.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BRGEW'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'BRGEW'.
wa_fieldcat-coltext = text-010.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'GEWEI'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'GEWEI'.
wa_fieldcat-coltext = text-011.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NTGEW'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'NTGEW'.
wa_fieldcat-coltext = text-012.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDIF.
IF rb3 EQ 'X'.
wa_fieldcat-fieldname = 'KLART'.
wa_fieldcat-ref_table = 'KLAH'.
wa_fieldcat-ref_field = 'KLART'.
wa_fieldcat-coltext = text-013.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'CLASS'.
wa_fieldcat-ref_table = 'KLAH'.
wa_fieldcat-ref_field = 'CLASS'.
wa_fieldcat-coltext = text-014.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'STDCL'.
wa_fieldcat-ref_table = 'KSSK'.
wa_fieldcat-ref_field = 'STDCL'.
wa_fieldcat-coltext = text-015.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDIF.
IF rb2 EQ 'X'.
*********************************销售
wa_fieldcat-fieldname = 'VKORG'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'VKORG'.
wa_fieldcat-coltext = text-016.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'VTWEG'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'VTWEG'.
wa_fieldcat-coltext = text-017.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'VRKME'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'VRKME'.
wa_fieldcat-coltext = text-018.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'DWERK'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'DWERK'.
wa_fieldcat-coltext = text-019.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'TAXM1'.
wa_fieldcat-ref_table = 'MLAN'.
wa_fieldcat-ref_field = 'TAXM1'.
wa_fieldcat-coltext = text-020.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'KONDM'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'KONDM'.
wa_fieldcat-coltext = text-021.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'KTGRM'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'KTGRM'.
wa_fieldcat-coltext = text-022.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MTPOS'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'MTPOS'.
wa_fieldcat-coltext = text-023.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MVGR1'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'MVGR1'.
wa_fieldcat-coltext = text-024.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MVGR2'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'MVGR2'.
wa_fieldcat-coltext = text-025.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MVGR3'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'MVGR3'.
wa_fieldcat-coltext = text-026.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MVGR4'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'MVGR4'.
wa_fieldcat-coltext = text-027.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MVGR5'.
wa_fieldcat-ref_table = 'MVKE'.
wa_fieldcat-ref_field = 'MVGR5'.
wa_fieldcat-coltext = text-028.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MTVFP'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'MTVFP'.
wa_fieldcat-coltext = text-029.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'TRAGR'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'TRAGR'.
wa_fieldcat-coltext = text-030.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LADGR'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'LADGR'.
wa_fieldcat-coltext = text-031.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
******************************************
ENDIF.
IF rb1 EQ 'X'.
wa_fieldcat-fieldname = 'EKGRP'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'EKGRP'.
wa_fieldcat-coltext = text-032.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'XCHPF'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'XCHPF'.
wa_fieldcat-coltext = text-077.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'KORDB'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'KORDB'.
wa_fieldcat-coltext = text-033.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'DISMM'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'DISMM'.
wa_fieldcat-coltext = text-034.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'DISPO'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'DISPO'.
wa_fieldcat-coltext = text-035.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'DISLS'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'DISLS'.
wa_fieldcat-coltext = text-036.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BSTMI'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'BSTMI'.
wa_fieldcat-coltext = text-037.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BSTRF'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'BSTRF'.
wa_fieldcat-coltext = text-038.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BESKZ'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'BESKZ'.
wa_fieldcat-coltext = text-039.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'SOBSL'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'SOBSL'.
wa_fieldcat-coltext = text-040.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LGPRO'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'LGPRO'.
wa_fieldcat-coltext = text-041.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'RGEKZ'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'RGEKZ'.
wa_fieldcat-coltext = text-042.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'PLIFZ'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'PLIFZ'.
wa_fieldcat-coltext = text-043.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FHORI'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'FHORI'.
wa_fieldcat-coltext = text-044.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'EISBE'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'EISBE'.
wa_fieldcat-coltext = text-045.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'STRGR'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'STRGR'.
wa_fieldcat-coltext = text-046.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MISKZ'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'MISKZ'.
wa_fieldcat-coltext = text-047.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MTVFP'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'MTVFP'.
wa_fieldcat-coltext = text-048.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ALTSL'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'ALTSL'.
wa_fieldcat-coltext = text-049.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'SBDKZ'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'SBDKZ'.
wa_fieldcat-coltext = text-050.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FEVOR'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'FEVOR'.
wa_fieldcat-coltext = text-051.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'SFCPF'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'SFCPF'.
wa_fieldcat-coltext = text-052.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'UEETO'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'UEETO'.
wa_fieldcat-coltext = text-053.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'UEETK'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'UEETK'.
wa_fieldcat-coltext = text-054.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BEARZ'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'BEARZ'.
wa_fieldcat-coltext = text-055.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BASMG'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'BASMG'.
wa_fieldcat-coltext = text-056.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MHDRZ'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'MHDRZ'.
wa_fieldcat-coltext = text-057.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MHDHB'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'MHDHB'.
wa_fieldcat-coltext = text-058.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
"财务
"权限检查
"AND 权限检查
AUTHORITY-CHECK OBJECT 'M_MATE_STA'
ID 'ACTVT' DUMMY
ID 'STATM' FIELD 'B'."显示财务视图
IF sy-subrc EQ 0.
wa_fieldcat-fieldname = 'BKLAS'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'BKLAS'.
wa_fieldcat-coltext = text-059.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MLAST'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'MLAST'.
wa_fieldcat-coltext = text-060.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'VPRSV'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'VPRSV'.
wa_fieldcat-coltext = text-061.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'PEINH'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'PEINH'.
wa_fieldcat-coltext = text-062.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BWPRS'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'BWPRS'.
wa_fieldcat-coltext = text-063.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NCOST'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'NCOST'.
wa_fieldcat-coltext = text-064.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'EKALR'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'EKALR'.
wa_fieldcat-coltext = text-065.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'HKMAT'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'HKMAT'.
wa_fieldcat-coltext = text-066.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'AWSLS'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'MLAST'.
wa_fieldcat-coltext = text-067.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LOSGR'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'LOSGR'.
wa_fieldcat-coltext = text-068.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ZPLP1'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'ZPLP1'.
wa_fieldcat-coltext = text-069.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ZPLD1'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'ZPLD1'.
wa_fieldcat-coltext = text-070.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'VERPR'.
wa_fieldcat-ref_table = 'MBEW'.
wa_fieldcat-ref_field = 'VERPR'.
wa_fieldcat-coltext = text-078.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDIF.
ENDIF.
IF rb4 EQ 'X'.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-ref_table = 'MARC'.
wa_fieldcat-ref_field = 'WERKS'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-coltext = text-004.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LGORT'.
wa_fieldcat-ref_table = 'MARD'.
wa_fieldcat-ref_field = 'LGORT'.
wa_fieldcat-coltext = text-071.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDIF.
wa_fieldcat-fieldname = 'MARA_LVORM'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'LVORM'.
wa_fieldcat-coltext = text-072.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MARD_LVORM'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'LVORM'.
wa_fieldcat-coltext = text-073.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MARC_LVORM'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'LVORM'.
wa_fieldcat-coltext = text-074.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MBEW_LVORM'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'LVORM'.
wa_fieldcat-coltext = text-075.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MVKE_LVORM'.
wa_fieldcat-ref_table = 'MARA'.
wa_fieldcat-ref_field = 'LVORM'.
wa_fieldcat-coltext = text-076.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " FRM_INIT_FIELDCAT
*&---------------------------------------------------------------------*
*& Form FRM_EVENT_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_event_build .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 4
IMPORTING
et_events = it_events.
DELETE it_events WHERE form IS INITIAL.
ENDFORM. " FRM_EVENT_BUILD
*&---------------------------------------------------------------------*
*& Form FRM_ALV_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_alv_output .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET'
i_callback_user_command = 'ALV_USER_COMMAND'
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
it_excluding = it_excluding
i_default = 'X'
i_save = 'A'
it_events = it_events
it_sort_lvc = it_sort
TABLES
t_outtab = it_alv
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " FRM_ALV_OUTPUT
*----------------------------------------------------------------------*
* FORM user_command *
*----------------------------------------------------------------------*
FORM alv_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
* 响应用户操作
CASE r_ucomm.
WHEN '&IC1'."hotspot响应
IF rs_selfield-value IS NOT INITIAL.
CASE rs_selfield-fieldname.
WHEN 'MATNR'.
SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
WHEN 'WERKS'.
READ TABLE it_alv INTO wa_alv INDEX rs_selfield-tabindex.
IF sy-subrc EQ 0.
SET PARAMETER ID 'MAT' FIELD wa_alv-matnr.
SET PARAMETER ID 'WRK' FIELD wa_alv-werks.
CALL TRANSACTION 'MMSC' AND SKIP FIRST SCREEN.
ENDIF.
WHEN OTHERS.
r_ucomm = '&ETA'.
ENDCASE.
ELSE.
r_ucomm = '&ETA'.
ENDIF.
ENDCASE.
ENDFORM. "ALV_USER_COMMAND
物料主数据查询程序代码
最新推荐文章于 2024-08-07 21:58:12 发布