alv tree 添加工具栏按钮

在全局数据中加入:

       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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值