1.增强结构:增强字段必须放在SAFM_AP_AS_EXT_BKPF结构里面,可修改这个结构,APPEND自定义结构在里面,也可以在里面的INCLUDE结构里面附加。

2.表激活成功之后,需要运行程序SAPFACCG,运行完成之后检查FFACIGEN中P_ACC是否存在这个字段。

3.创建一个函数组,里面创建一个屏幕(属性里面屏幕类型设定为子屏幕),屏幕创建完成之后,加上代码,并且在屏幕里面加上需要的字段。

TOP 定义:
TABLES:bkpf.
DATA: go_exit TYPE REF TO if_ex_fi_header_sub_1300.
DATA: gs_bkpf TYPE bkpf.
DATA: gv_scr_mode TYPE xfeld.
PBO MODULE代码:
MODULE status_9001 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
* 获取实例
IF go_exit IS INITIAL.
CALL METHOD cl_exithandler=>get_instance_for_subscreens
CHANGING
instance = go_exit
EXCEPTIONS
no_reference = 1
no_interface_reference = 2
no_exit_interface = 3
data_incons_in_exit_managem = 4
class_not_implement_interface = 5
OTHERS = 6.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
* 获取值
CALL METHOD go_exit->get_data_from_screen_pbo
EXPORTING
flt_val = 'CN'
IMPORTING
ex_bkpf = gs_bkpf
ex_x_no_input = gv_scr_mode.
* 设置屏幕
LOOP AT SCREEN.
IF gv_scr_mode = 'X'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDMODULE.
PAI MODULE代码:
MODULE pai INPUT.
* 获取
CALL METHOD go_exit->get_data_from_screen_pai
EXPORTING
flt_val = 'CN'
IMPORTING
ex_bkpf = gs_bkpf.
* 设置
gs_bkpf-zpjh = bkpf-zpjh.
gs_bkpf-zzpqj = bkpf-zzpqj.
* 回传
CALL METHOD go_exit->put_data_to_screen_pai
EXPORTING
im_bkpf = gs_bkpf
flt_val = 'CN'.
ENDMODULE.
在此函数组激活。
3.增强点:BADI增强 FI_HEADER_SUB_1300,在这里,注意过滤器要配置一行CN,在屏幕页签,配置好调用程序和屏幕号


屏幕配置好之后,在接口页签,需要给四个方法分别添加代码:
PUT_DATA_TO_SCREEN_PBO
METHOD if_ex_fi_header_sub_1300~put_data_to_screen_pbo.
me->if_ex_fi_header_sub_1300~bkpf = im_bkpf.
me->if_ex_fi_header_sub_1300~x_no_input = im_x_no_input.
ENDMETHOD.
PUT_DATA_TO_SCREEN_PAI
METHOD if_ex_fi_header_sub_1300~put_data_to_screen_pai.
me->if_ex_fi_header_sub_1300~bkpf = im_bkpf.
ENDMETHOD.
GET_DATA_FROM_SCREEN_PBO
METHOD if_ex_fi_header_sub_1300~get_data_from_screen_pbo.
ex_bkpf = me->if_ex_fi_header_sub_1300~bkpf.
ex_x_no_input = me->if_ex_fi_header_sub_1300~x_no_input.
ENDMETHOD.
GET_DATA_FROM_SCREEN_PAI
METHOD if_ex_fi_header_sub_1300~get_data_from_screen_pai.
ex_bkpf = me->if_ex_fi_header_sub_1300~bkpf .
ENDMETHOD.
屏幕效果我就不展示在这里,最后,如果增强字段想要FB02/FB03前台也能看到的话,需要修改标准程序的屏幕(程序:SAPMF05L 屏幕:1710),在屏幕里面把字段加上之后,这个增强就完成了。

1695

被折叠的 条评论
为什么被折叠?



