OO ALV常用功能完整简例(热键单击,双击,帮助,编辑,自定义工具条等)

OO ALV常用功能完整简例(热键单击,双击,帮助,编辑,自定义工具条等)


我感兴趣的双击事件的要点如下:

1.定义类实现类

在最开头要声明一下定义好的类

CLASS ALV_EVENT_RECEIVER DEFINITION DEFERRED.

这样以后,后面才能依据这个类生成别的类或者实例


CLASS alv_event_receiver DEFINITION.

    "双击时触发
    METHODS handle_double_click  FOR EVENT double_click  OF cl_gui_alv_grid
      IMPORTING
        e_row
        e_column
        es_row_no.


CLASS alv_event_receiver IMPLEMENTATION.                                                              类

    METHOD handle_double_click.
    "获取单击字段
    DATA: l_msg      TYPE string,
          l_wa_click LIKE LINE OF g_it_show,
          l_row      TYPE string,
          l_field    TYPE string.

    l_field      = e_column-fieldname.               "选中行
    l_row        = es_row_no-row_id.                 "选中的字段

    READ TABLE g_it_show INTO l_wa_click INDEX es_row_no-row_id .

    IF sy-subrc = 0.
      "得到所单击值
      CONCATENATE '您选中第' l_row  '行,字段为:' l_field  ',选中值为:'  INTO l_msg.

      CASE l_field.
        WHEN 'CONNID'.
          CONCATENATE l_msg l_wa_click-connid INTO l_msg.
          MESSAGE l_msg TYPE 'I'.
        WHEN 'FLDATE'.
          CONCATENATE l_msg l_wa_click-fldate INTO l_msg.
          MESSAGE l_msg TYPE 'I'.
      ENDCASE.

    ENDIF.
  ENDMETHOD.                    "handle_DOUBLE_CLICK

2.数据从透明表读到内表g_it_show中

SELECT carrid
      connid
      fldate
      price
    
FROM sflight INTO CORRESPONDING FIELDS OF  TABLE g_it_show.           内表

3.显示内表数据

    CALL METHOD g_alv_grid->set_table_for_first_display                                                          ALV
      EXPORTING
        is_layout            = ls_layout
        is_variant           = l_disvariant
        it_toolbar_excluding = gt_tools
      CHANGING
        it_fieldcatalog      = it_fieldcatalog[]
        it_outtab            = g_it_show[].                                                                                                    内表


4.EVENT事件绑定

    DATA : g_event  TYPE REF TO  alv_event_receiver.                                           类

    CREATE OBJECT g_event.

    SET HANDLER   g_event->handle_double_click FOR g_alv_grid.             ALV

你可能感兴趣的:(OO ALV常用功能完整简例(热键单击,双击,帮助,编辑,自定义工具条等))