需求:增强点逻辑ME21N供应商字段筛选时(即F4功能),需对以下红框处5个页签做工厂权限对象限制:F_LFA1_BUK 解决方法如下:
SE38进入程序:LSDSDF03 找到perform:form map_itab_to_record_tab
DATA: LV_VKORG TYPE VKORG.
FIELD-SYMBOLS: TYPE VKORG,
TYPE BUKRS,
TYPE M_KREDM-EWERK,
TYPE M_KREDE-EKORG,
TYPE VSTEL.
TYPES: BEGIN OF LTY_TVKO,
BUKRS TYPE BUKRS, "公司代码
VKORG TYPE VKORG, "销售组织
END OF LTY_TVKO.
DATA: LT_TVKO TYPE TABLE OF LTY_TVKO.
IF SY-TCODE = 'ME21N'.
LOOP AT SOURCE_TAB.
"工厂 搜索帮助
I = SY-TABIX.
ASSIGN COMPONENT 'BUKRS' OF STRUCTURE SOURCE_TAB TO .
IF IS ASSIGNED.
AUTHORITY-CHECK OBJECT 'F_LFA1_BUK'
ID 'BUKRS' FIELD
ID 'ACTVT' DUMMY.
IF SY-SUBRC NE 0.
DELETE SOURCE_TAB INDEX I.
ENDIF.
ELSE.
ASSIGN COMPONENT 'EKORG' OF STRUCTURE SOURCE_TAB TO .
IF IS ASSIGNED.
IF SY-SUBRC EQ 0.
AUTHORITY-CHECK OBJECT 'F_LFA1_BUK'
ID 'EKORG' FIELD
ID 'ACTVT' DUMMY.
IF SY-SUBRC NE 0.
DELETE SOURCE_TAB INDEX I.
ENDIF.
ENDIF.
ELSE.
ASSIGN COMPONENT 'EWERK' OF STRUCTURE SOURCE_TAB TO .
IF IS ASSIGNED.
AUTHORITY-CHECK OBJECT 'F_LFA1_BUK'
ID 'EWERK' FIELD
ID 'ACTVT' DUMMY.
IF SY-SUBRC EQ 0.
DELETE SOURCE_TAB INDEX I.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
|