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.
相关文章推荐
- cl_gui_alv_tree_simple响应双击&n…
- ALV_TREE(二:cl_gui_simple_tree…
- cl_gui_alv_grid 输出字段控制
- alv 类cl_gui_alv_grid事件查…
- ALV_TREE(一:cl_gui_alv_tree_si…
- alv 类cl_gui_alv_grid事件查…
- 自定义屏幕中ALV 双击事件怎样触发屏幕的PAI(cl_gui_cfw=>set_new_ok_code)
- ALV_TREE(一:cl_gui_alv_tree_si…
- ALV_TREE(二:cl_gui_simple_tree…
- cl_gui_alv_grid 输出字段控制
- 如何在cl_gui_alv_grid设置list列表
- alv_tree 刷新 refresh功能
- 如何在cl_gui_alv_grid设置list列表
- XLS文件读取 & cl_gui_frontend_services=>file_open_dialog
- CL_GUI_FRONTEND_SERVICES=>FILE_EXIST(判断物理文件是否存在)
- abap--REUSE_ALV_GRID_DISPLAY事件子过程和cl_gui_grid类的事件对应关系
- CL_GUI_ALV_GRID 触发PAI事件(Application event)
- abap--REUSE_ALV_GRID_DISPLAY事件子过程和cl_gui_grid类的事件对应关系
- ABAP--SAP是如何回写CL_GUI_ALV_GRID_BASE的MT_MODIFIED_CELLS的
- ALV demo:cl_salv_table