在全局数据中加入:
g_toolbar TYPE REF TO cl_gui_toolbar, "alv tree 工具栏
在类定义中加入:
PUBLIC SECTION.
METHODS on_function_selected "添加工具栏按钮
FOR EVENT function_selected OF cl_gui_toolbar
IMPORTING fcode.
在类现实中加入:
METHOD on_function_selected.
DATA : it_selected_nodes TYPE lvc_t_nkey,
l_selected_node TYPE lvc_nkey,
l_rc TYPE c.
CASE fcode.
WHEN 'DELETE'.
CALL METHOD g_alv_tree->get_selected_nodes "获取用户选择数据节点
CHANGING
ct_selected_nodes = it_selected_nodes.
CALL METHOD cl_gui_cfw=>flush.
READ TABLE it_selected_nodes INTO l_selected_node INDEX 1.
IF sy-subrc EQ 0.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
textline1 = 'Do you really want to delete'(902)
textline2 = 'this node and all its subnodes?'(903)
titel = 'Confirmation'(904)
cancel_display = ' '
IMPORTING
answer = l_rc.
IF l_rc EQ 'J'.
CALL METHOD g_alv_tree->delete_subtree "删除数据节点
EXPORTING
i_node_key = l_selected_node.
CALL method g_alv_tree->frontend_update.
ENDIF.
ENDIF.
ENDCASE.
ENDMETHOD.
在类注册中添加:
SET HANDLER l_event_receiver->on_function_selected FOR g_toolbar.
在BUILD_TREE中添加:
PERFORM change_toolbar.
FORM change_toolbar .
CALL METHOD g_alv_tree->get_toolbar_object
IMPORTING
er_toolbar = g_toolbar.
CHECK NOT g_toolbar IS INITIAL.
CALL METHOD g_toolbar->add_button
EXPORTING
fcode = ''
icon = ''
butn_type = cntb_btype_sep.
CALL METHOD g_toolbar->add_button
EXPORTING
fcode = 'DELETE'
icon = '@11@'
butn_type = cntb_btype_button
text = ''
quickinfo = text-901.
ENDFORM. " change_toolbar