SAP会计凭证抬头增强

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),在屏幕里面把字段加上之后,这个增强就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值