【第五篇】SAP ABAP7.50 之subscreen

更多内容关注公众号:SAP Technical

Selection Screens 上使用Subscreens,其实和以前的版本类似

直接上代码:

REPORT demo_sel_screen_as_subscreen.

SELECTION-SCREEN BEGIN OF SCREEN 1100 AS SUBSCREEN NESTING LEVEL 4.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-010.
PARAMETERS: p1(10) TYPE c,
            p2(10) TYPE c,
            p3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 1100.

SELECTION-SCREEN BEGIN OF SCREEN 1200 AS SUBSCREEN NESTING LEVEL 4.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.
PARAMETERS: q1(10) TYPE c OBLIGATORY,
            q2(10) TYPE c OBLIGATORY,
            q3(10) TYPE c OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF SCREEN 1200.

DATA: ok_code TYPE sy-ucomm,
      save_ok TYPE sy-ucomm.

DATA: number(4) TYPE n VALUE '1100'.

START-OF-SELECTION.
  CALL SCREEN 100.

MODULE status_0100 OUTPUT.
  SET PF-STATUS 'SCREEN_100'.
ENDMODULE.

MODULE cancel INPUT.
  LEAVE PROGRAM.
ENDMODULE.

MODULE user_command_0100 INPUT.
  save_ok = ok_code.
  CLEAR ok_code.
  CASE save_ok.
    WHEN 'BUTTON1'.
      number = 1100.
    WHEN 'BUTTON2'.
      number = 1200.
  ENDCASE.
ENDMODULE.

AT SELECTION-SCREEN.
  MESSAGE s888(sabapdemos) WITH text-030 sy-dynnr.

 

SAP ABAP 7.50版本中,引入了一种新的增强方式——隐式增强。与显示增强不同,隐式增强不需要修改原始代码,而是通过继承方式来进行增强。 隐式增强的实现步骤如下: 1. 创建一个子类,继承需要增强的类。 2. 在子类中定义方法,并使用 SUPER-> 方法名的方式调用父类中的相应方法。 3. 在子类中重载需要增强的方法,并在其中实现增强逻辑。 下面举一个例子说明隐式增强的具体实现过程。 假设有一个需要增强的类 CL_MY_CLASS,其中有一个方法 DO_SOMETHING,现在需要在该方法中增加一些逻辑。具体实现过程如下: 1. 创建一个子类 CL_MY_CLASS_IMP,继承 CL_MY_CLASS。 2. 在子类中定义方法 DO_SOMETHING,并使用 SUPER->DO_SOMETHING 的方式调用父类方法。 3. 在子类中重载 DO_SOMETHING 方法,并在其中实现增强逻辑。 示例代码如下: ``` CLASS cl_my_class DEFINITION. PUBLIC SECTION. METHODS: do_something. ENDCLASS. CLASS cl_my_class IMPLEMENTATION. METHOD do_something. " 原有逻辑 ENDMETHOD. ENDCLASS. CLASS cl_my_class_imp DEFINITION INHERITING FROM cl_my_class. PUBLIC SECTION. METHODS: do_something REDEFINITION. ENDCLASS. CLASS cl_my_class_imp IMPLEMENTATION. METHOD do_something. " 新增逻辑 SUPER->do_something( ). " 原有逻辑 ENDMETHOD. ENDCLASS. ``` 在上面的代码中,我们创建了一个子类 CL_MY_CLASS_IMP,继承了需要增强的类 CL_MY_CLASS。然后在子类中重载了 DO_SOMETHING 方法,并在其中实现了新增的逻辑。在重载的方法中,我们使用了 SUPER->DO_SOMETHING 的方式调用了父类中的方法,以保留原有的逻辑。 通过隐式增强的方式,我们无需修改原始代码,就可以实现对原有类的增强,降低了代码维护的成本。同时,隐式增强也避免了在原有代码中添加大量的 IF EXIST 语句的情况,使得代码更加清晰易懂。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值