0
点赞
收藏
分享

微信扫一扫

cl_gui_alv_tree_simple响应双击 不能响应整行任意位置双击_SAP刘梦

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 

  DATA: lt_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 .


欢迎关注订阅号:SAP学习记录 (SAPlearning )

PO <wbr><wbr><wbr>text <wbr><wbr><wbr>copy <wbr><wbr><wbr>rules <wbr><wbr><wbr>:copy <wbr><wbr><wbr>PR <wbr><wbr><wbr>item <wbr><wbr><wbr>text <wbr><wbr><wbr>to <wbr><wbr><wbr>PO



举报

相关推荐

0 条评论