• cl_gui_alv_tree_simple响应双击&n…


    cl_gui_alv_tree_simple响应双击 <wbr>不能响应整行任意位置双击

    使用cl_gui_alv_tree_simple 实现双击后,发现只有双击前面的文本图标时才响应,点这行其他位置没效果

    经朋友MACIO提示,已经解决

    我修改了三个地方
     
    一、lvc_s_fcat 结构中的热点(参数gb_fieldcat)
    CALL METHOD tree_grid->set_table_for_first_display
          EXPORTING
            it_list_commentary ls_list_comm
            i_structure_name   'Z_KEMU_INFOR'
          CHANGING
            it_sort            gb_sortfld
            it_fieldcatalog    gb_fieldcat
            it_outtab          g_kemu_show[].

    在控制字段输出时,不能设置热点 ls_fldcat-hotspot ,
    如果 = 空,则整行起作用,
    如果 = X,则单击图标或者第一个字段会起作用。
      LOOP AT gb_fieldcat INTO ls_fldcat.
       ls_fldcat-hotspot 'X'.            "必须空
        CASE ls_fldcat-fieldname.
          WHEN 'TSLVT'
               OR 'HKONT_DESC'
               OR 'BJH_HKONT_PREV_T'.
            ls_fldcat-outputlen 25.
          WHEN OTHERS.
            ls_fldcat-no_out 'X'.
        ENDCASE.
    endloop.
    二、注册的时候注册 eventid_item_double_click 
      DATAlt_events TYPE cntl_simple_events,
            l_event TYPE cntl_simple_event.

      CLEAR l_event.
      l_event-eventid cl_gui_list_tree=>eventid_item_double_click.
      l_event-appl_event 'X'.
      APPEND l_event TO lt_events.

    三、编写响应的操作
    CLASS cl_tree_event_receiver DEFINITION.

      PUBLIC SECTION.
      double click item
        METHODS handle_double_click
          FOR EVENT node_double_click OF cl_gui_alv_tree_simple
          IMPORTING index_outtab
                    grouplevel.
        METHODS item_double_click
          FOR EVENT item_double_click OF cl_gui_alv_tree_simple
          IMPORTING
            fieldname
            index_outtab
            grouplevel.
      PRIVATE SECTION.

    ENDCLASS                   "CL_TREE_EVENT_RECEIVER DEFINITION

    然后去实现

        CALL METHOD tree_grid->set_table_for_first_display
          EXPORTING
            it_list_commentary ls_list_comm
            i_structure_name   '_KEMU_INFOR'
          CHANGING
            it_sort            gb_sortfld
            it_fieldcatalog    gb_fieldcat
            it_outtab          g_kemu_show[].
    *
        CALL METHOD tree_grid->expand_tree
          EXPORTING
            i_level 1.
    *
    ** register events
        PERFORM register_events.
    ** set handler for tree1
        SET HANDLER tree_event_receiver->handle_double_click FOR tree_grid.
        SET HANDLER tree_event_receiver->item_double_click FOR tree_grid.
    http://blog.sina.com.cn/sapliumeng
  • 相关阅读:
    deb app install under terminal
    修改代理
    virtualenv install &usage
    what a pietty
    晚上想睡觉不要喝可乐
    ubuntu server 调教
    修改代理
    修改网关为静态IP
    infobright install tips
    i like fujishu laptop more than mac
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802197.html
Copyright © 2020-2023  润新知