技术开发 频道

ABAP屏幕显示调用总结

    【IT168 技术文章】

    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
 

0
相关文章