[ABAP]MIRO屏幕增强

20 篇文章 0 订阅

相关需求:金税发票长度由16变20

相关增强:

增强点:BADI_FDCB_SUBBAS04

SE19:ZBADI_FDCB_SUBBAS04

增强函数组:ZFG_MIRO

增强屏幕:9000

增强字段: INVFO-REBZG

原字段:INVFO-XBLNR

1.实施增强点方法

PUT_DATA_TO_SCREEN_OBJECT

  METHOD if_ex_badi_fdcb_subbas04~put_data_to_screen_object.
    me->if_ex_badi_fdcb_subbas04~invfo  = im_invfo.
  ENDMETHOD.

 GET_DATA_FROM_SCREEN_OBJECT

  METHOD if_ex_badi_fdcb_subbas04~get_data_from_screen_object.
    ex_invfo  = me->if_ex_badi_fdcb_subbas04~invfo.
  ENDMETHOD.

2.实施增强点子屏幕 

*屏幕9000
PROCESS BEFORE OUTPUT.
  MODULE get_instance.
  MODULE screen_modify.


PROCESS AFTER INPUT.
  MODULE receive_actual_data.
  FIELD:invfo-rebzg.
  MODULE user_command_9000.
*PBO
*----------------------------------------------------------------------*
***INCLUDE LZFG_MIROO01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  GET_INSTANCE  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE get_instance OUTPUT.

  IF o_badi_fdcb_subbas04 IS INITIAL.

    CALL METHOD cl_exithandler=>get_instance_for_subscreens
      CHANGING
        instance                      = o_badi_fdcb_subbas04
      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.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*     WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

  ENDIF.


* object created
  CHECK NOT o_badi_fdcb_subbas04 IS INITIAL.


* get data from main screen
  CALL METHOD o_badi_fdcb_subbas04->get_data_from_screen_object
    IMPORTING
      ex_invfo = invfo.


ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  SCREEN_MODIFY  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE screen_modify OUTPUT.

  LOOP AT SCREEN.
    CASE sy-tcode.
      WHEN 'FB60' OR 'FB65' OR 'FB70' OR 'FB75'
         OR 'MIRO' OR 'MIRA' OR 'MIR7'.

        screen-input = 1.
      WHEN OTHERS.
        screen-input = 0.
    ENDCASE.
    MODIFY SCREEN.
  ENDLOOP.

ENDMODULE.
*PAI
*----------------------------------------------------------------------*
***INCLUDE LZFG_MIROI01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  RECEIVE_ACTUAL_DATA  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE receive_actual_data INPUT.
* object created
  CHECK NOT o_badi_fdcb_subbas04 IS INITIAL.

* get data from main screen
  CALL METHOD o_badi_fdcb_subbas04->get_data_from_screen_object
    IMPORTING
      ex_invfo = invfo.


ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.
* object created
  CHECK NOT o_badi_fdcb_subbas04 IS INITIAL.

* put data to main screen
  CALL METHOD o_badi_fdcb_subbas04->put_data_to_screen_object
    EXPORTING
      im_invfo = invfo.


ENDMODULE.

  3.测试效果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值