zoukankan      html  css  js  c++  java
  • CL_GUI_ALV_GRID 触发PAI事件(Application event)

    *&---------------------------------------------------------------------*
    *& Report  Z_BARRY_ALV_GRID_EVENT
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*
    
    REPORT  z_barry_alv_grid_event.
    
    DATA: itab TYPE TABLE OF sflight .
    DATA: ok_code LIKE sy-ucomm .
    DATA: go_grid             TYPE REF TO cl_gui_alv_grid,
          go_custom_container TYPE REF TO cl_gui_custom_container.
    
    CLASS lcl_event_receiver DEFINITION DEFERRED .
    DATA: event_receiver TYPE REF TO lcl_event_receiver.
    
    *---------------------------------------------------------------------*
    *       CLASS lcl_event_receiver DEFINITION
    *---------------------------------------------------------------------*
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS catch_doubleclick
        FOR EVENT double_click OF cl_gui_alv_grid
        IMPORTING e_row
                  e_column
                  es_row_no .
    ENDCLASS.                    "lcl_event_receiver DEFINITION
    
    *---------------------------------------------------------------------*
    *       CLASS lcl_event_receiver IMPLEMENTATION
    *---------------------------------------------------------------------*
    CLASS lcl_event_receiver IMPLEMENTATION.
      METHOD catch_doubleclick.
        CALL METHOD cl_gui_cfw=>set_new_ok_code
          EXPORTING
            new_code = 'BACK'.
        CALL METHOD cl_gui_cfw=>flush.
      ENDMETHOD.                    "catch_doubleclick
    ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
    
    START-OF-SELECTION.
      CALL SCREEN 0100 .
    
    *&---------------------------------------------------------------------*
    *&      Module  STATUS_0100  OUTPUT
    *&---------------------------------------------------------------------*
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'MAIN100'.
      IF go_grid IS INITIAL.
        CREATE OBJECT go_grid
          EXPORTING
            i_parent = cl_gui_container=>screen0.
    
        CREATE OBJECT event_receiver.
        SET HANDLER event_receiver->catch_doubleclick FOR go_grid.
    
        SELECT * FROM sflight INTO TABLE itab UP TO 10 ROWS.
    
        CALL METHOD go_grid->set_table_for_first_display
          EXPORTING
            i_structure_name = 'SFLIGHT'
          CHANGING
            it_outtab        = itab.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    
    *&---------------------------------------------------------------------*
    *&      Module  USER_COMMAND_0100  INPUT
    *&---------------------------------------------------------------------*
    MODULE user_command_0100 INPUT.
      CASE ok_code.
        WHEN 'BACK'.
          LEAVE PROGRAM.
      ENDCASE.
      CLEAR ok_code .
    ENDMODULE.                 " USER_COMMAND_0100  INPUT

    另注:CL_GUI_ALV_GRID的SET_REGISTERED_EVENTS方法系统没有实现,不让使用

    文章转载自:http://blog.chinaunix.net/uid-8527621-id-2029831.html

  • 相关阅读:
    close()和shutdown()函数
    select、poll、epoll之间的区别总结[整理]
    多路复用I/O模型epoll() 模型 代码实现
    多路复用I/O模型poll() 模型 代码实现
    多路复用I/O模型select() 模型 代码实现
    socket编程之select(),poll(),epoll()
    Android Studio 导入项目 出现安装Error:Cause: failed to find target with hash string 'android-23' 等错误
    Oracle大总结
    MySQL java连接被拒绝:java.sql.SQLException: Access denied for user 'root'@'****' (using password: YES)
    解决mysql中只能通过localhost访问不能通过ip访问的问题
  • 原文地址:https://www.cnblogs.com/shelwin/p/4726449.html
Copyright © 2011-2022 走看看