您的位置:首页 > 产品设计 > UI/UE

cl_gui_alv_tree_simple响应双击&n…

2014-01-22 09:21 441 查看


不能响应整行任意位置双击" TITLE="cl_gui_alv_tree_simple响应双击 不能响应整行任意位置双击" />


使用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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: