手动调用选择屏幕和从显

 sap abap屏幕显示调用总结-手动调用选择屏幕和从显 (2008-09-25 11:36:26)
 

(1)定义选择屏幕

SELECTION-SCREEN BEGIN OF SCREEN 9999 ."as SUBSCREEN.

PARAMETERS p_werks LIKE ekpo-werks OBLIGATORY.
SELECT-OPTIONS:
             s_ebeln FOR ekko-ebeln ,
             s_lifnr FOR ekko-lifnr,
             s_aedat FOR ekko-aedat ."OBLIGATORY.
SELECTION-SCREEN END OF SCREEN 9999.

(2)调用:

START-OF-SELECTION.

  CALL SELECTION-SCREEN 9999.

  CALL SCREEN '100'.

(3)从屏幕100返回选择屏幕:

MODULE status_0100 OUTPUT.
  SET PF-STATUS 'MAIN200'.
   gs_variant-report = sy-repid.
  "注册事件到alv
  IF g_custom_container IS INITIAL.
    CREATE OBJECT g_custom_container
           EXPORTING container_name = g_container.
  IF go_grid IS INITIAL.
    CREATE OBJECT go_grid
      EXPORTING
         i_parent = g_custom_container."不能使用默认容器cl_gui_container=>screen0.,否则不能返回到选择屏幕。
    CREATE OBJECT event_receiver.
    SET HANDLER event_receiver->handle_f4 FOR go_grid.
    CALL METHOD go_grid->register_f4_for_fields
      EXPORTING
         it_f4 = gt_f4."gt_f4用于保存产生f4事件的字段
    SET HANDLER event_receiver->catch_doubleclick FOR go_grid.
    IF sy-batch IS INITIAL.
      CALL METHOD go_grid->register_edit_event
        EXPORTING
           i_event_id = cl_gui_alv_grid=>mc_evt_enter.
    ENDIF.
    PERFORM load_data_into_grid.
  ENDIF.
  ENDIF.
ENDMODULE    

MODULE user_command_0100 INPUT.
  CASE ok_code."注意在屏幕中必须定义ok_code
    WHEN 'EXIT' OR 'BACK'.

    FREE: g_custom_container, go_grid.

      call SELECTION-SCREEN 9999 .

    WHEN 'SAVE'.
      PERFORM save.
    WHEN 'SEL'.
      PERFORM all.
    WHEN 'CAL'.
      PERFORM none.
  ENDCASE.
  CLEAR ok_code .
ENDMODULE                " USER_COMMAND_0100   INPUT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值