目录
9.BUS6创建屏幕顺序(如果是添加到标准页签,则不需要该步骤)
11.BUS7维护事件函数,需要对ISDAT、XCHNG、DSAVB事件进行维护
PS:不管是增强到标准页签或者是新增页签,都可以按照该步骤进行开发,增强到标准页签的步骤文中有补充说明。
1.SE11扩张增强结构
2.创建函数组 ZPRMMFG002
创建子屏幕9000
PBO部分:
MODULE status_9000 OUTPUT.
DATA:
lv_activ TYPE bu_aktyp.
CALL FUNCTION 'BUS_PBO'.
CALL METHOD cvi_bdt_adapter=>get_activity
RECEIVING
r_activity = lv_activ.
* If display mode,make custom fields can't edit
IF lv_activ = '03'.
LOOP AT SCREEN.
IF screen-group1 = 'GP1'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
PAI部分:
MODULE user_command_9000 INPUT.
CALL FUNCTION 'BUS_PAI'.
ENDMODULE.
3.BUS1创建应用程序
4.BUS23创建数据集
5.BUS2创建字段组
将需要增强到屏幕上的字段添加到字段组
6.BUS3创建视图
ZPRMMFM_BP_LFB1_PBO代码:
FUNCTION zprmmfm_bp_lfb1_pbo.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"----------------------------------------------------------------------
DATA:
lt_lfb1 TYPE STANDARD TABLE OF lfb1,
lv_compcode TYPE bukrs.
lv_compcode = cvi_bdt_adapter=>get_current_company_code( ).
* step 1: request data from xo for dynpro structure
cvi_bdt_adapter=>data_pbo(
EXPORTING
i_table_name = gv_tab_name_lfb1
IMPORTING
e_data_table = lt_lfb1
).
IF lt_lfb1 IS INITIAL.
CLEAR gs_lfb1.
ELSE.
READ TABLE lt_lfb1 INTO gs_lfb1 WITH KEY bukrs = lv_compcode.
ENDIF.
ENDFUNCTION.
ZPRMMFM_BP_LFB1_PAI代码:
FUNCTION zprmmfm_bp_lfb1_pai.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"----------------------------------------------------------------------
DATA:
lt_lfb1 TYPE STANDARD TABLE OF lfb1,
lv_compcode TYPE bukrs.
lv_compcode = cvi_bdt_adapter=>get_current_company_code( ).
CHECK cvi_bdt_adapter=>is_direct_input_active( ) = abap_false.
* step 1: update xo memory from dypro structure
cvi_bdt_adapter=>get_current_bp_data(
EXPORTING
i_table_name = gv_tab_name_lfb1
IMPORTING
e_data_table = lt_lfb1
).
IF lt_lfb1 IS INITIAL.
IF gs_lfb1 IS NOT INITIAL.
APPEND gs_lfb1 TO lt_lfb1.
ENDIF.
ELSE.
READ TABLE lt_lfb1 ASSIGNING FIELD-SYMBOL(<fs_lfb1>)
WITH KEY bukrs = lv_compcode.
<fs_lfb1>-zobject = gs_lfb1-zobject.
<fs_lfb1>-zdecision = gs_lfb1-zdecision.
<fs_lfb1>-zcapitalist = gs_lfb1-zcapitalist.
<fs_lfb1>-zcurrency = gs_lfb1-zcurrency.
<fs_lfb1>-zbankde = gs_lfb1-zbankde.
ENDIF.
cvi_bdt_adapter=>data_pai(
i_table_name = gv_tab_name_lfb1
i_data_new = lt_lfb1
i_validate = abap_false
).
ENDFUNCTION.
将视图分配给字段组
7.BUS4创建部分
8.BUS5创建屏幕
8.1 如果需要将增强屏幕添加到标准页签,可以借助BDT分析事物代码:BDT_ANALYZER,找到当前屏幕,将上一步BUS4创建的“部分”分配给该屏幕即可。
8.2 如果需要新增一个自定义页签,则需要在此处新建屏幕,本例为新建页签
记得将抬头部分也包括进来
9.BUS6创建屏幕顺序(如果是添加到标准页签,则不需要该步骤)
分配屏幕序列
创建屏幕分类
分配屏幕分类
同时在FS0001中将新建的屏幕序列维护进来,此处的FS0001可以借助BDT分析工具BDT_ANALYZER找到,可以参照步骤8.1中的截图。
10.BUSD维护业务伙伴视图,根据需求进行维护,本例只针对FI供应商需要显示增强页签
10.1 分配数据集
10.2 分配调用程序
10.3 分配屏幕序列(如果是添加到标准页签,则不需要该步骤)
11.BUS7维护事件函数,需要对ISDAT、XCHNG、DSAVB事件进行维护
BP标准事件调用流程图:
ISDAT事件维护:
FUNCTION zprmmfm_lfb1_event_isdat.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"----------------------------------------------------------------------
DATA:
ls_data TYPE bussdi3-data.
CALL FUNCTION 'CVIV_BUPA_LFB1_GET'
IMPORTING
e_lfb1 = gs_lfb1
e_data = ls_data.
lfb1-zobject = gs_lfb1-zobject.
lfb1-zdecision = gs_lfb1-zdecision.
lfb1-zcapitalist = gs_lfb1-zcapitalist.
lfb1-zcurrency = gs_lfb1-zcurrency.
lfb1-zbankde = gs_lfb1-zbankde.
ENDFUNCTION.
XCHNG事件维护:
FUNCTION zprmmfm_lfb1_event_xchng.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" EXPORTING
*" REFERENCE(E_XCHNG) TYPE BOOLEAN
*"----------------------------------------------------------------------
IF lfb1-zobject <> gs_lfb1-zobject .
e_xchng = 'X'.
ENDIF.
IF lfb1-zdecision <> gs_lfb1-zdecision.
e_xchng = 'X'.
ENDIF.
IF lfb1-zcapitalist <> gs_lfb1-zcapitalist.
e_xchng = 'X'.
ENDIF.
IF lfb1-zcurrency <> gs_lfb1-zcurrency.
e_xchng = 'X'.
ENDIF.
IF lfb1-zbankde <> gs_lfb1-zbankde.
e_xchng = 'X'.
ENDIF.
ENDFUNCTION.
DSAVB事件维护:
FUNCTION zprmmfm_lfb1_event_dsavb.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"----------------------------------------------------------------------
DATA:
lt_lfb1 TYPE STANDARD TABLE OF lfb1.
APPEND gs_lfb1 TO lt_lfb1.
CALL FUNCTION 'CVIV_BUPA_LFB1_COLLECT'
EXPORTING
i_subname = 'INCL_EEW_LFB1'
TABLES
t_lfb1 = lt_lfb1.
ENDFUNCTION.
以上为所有配置点,增强效果:
备注:所有的描述需要在各自对应语言环境下分别维护。