见红色部分,添加该参数后,ALVtree的注册事件将在屏幕PAI完毕之后触发。

    

data: node_table type treev_ntab,
        item_table type item_table_type,
        events type cntl_simple_events,
        event type cntl_simple_event.

* create a container for the tree control
  create object g_custom_container
    exporting      " the container is linked to the custom control with the
         " name 'TREE_CONTAINER' on the dynpro

      container_name = 'TREE_CONTAINER'
    exceptions
      cntl_error = 1
      cntl_system_error = 2
      create_error = 3
      lifetime_error = 4
      lifetime_dynpro_dynpro_link = 5.
  if sy-subrc <> 0.
    message a000.
  endif.
* create a list tree
  create object g_tree
    exporting
      parent              = g_custom_container
      node_selection_mode = cl_gui_list_tree=>node_sel_mode_single
      item_selection     = 'X'
      with_headers       = ' '
    exceptions
      cntl_system_error           = 1
      create_error                = 2
      failed                      = 3
      illegal_node_selection_mode = 4
      lifetime_error              = 5.
  if sy-subrc <> 0.
    message a000.
  endif.

* define the events which will be passed to the backend
                                       " node double click
  event-eventid = cl_gui_list_tree=>eventid_node_double_click.
  
event-appl_event = 'X'.                                   "
  append event to events.

                                       " item double click
  event-eventid = cl_gui_list_tree=>eventid_item_double_click.
  
event-appl_event = 'X'.
  append event to events.

                                       " expand no children
  event-eventid = cl_gui_list_tree=>eventid_expand_no_children.
  event-appl_event = 'X'.
  append event to events.

                                       " link click
  event-eventid = cl_gui_list_tree=>eventid_link_click.
  event-appl_event = 'X'.
  append event to events.

                                       " button click
  event-eventid = cl_gui_list_tree=>eventid_button_click.
  event-appl_event = 'X'.
  append event to events.

                                       " checkbox change
  event-eventid = cl_gui_list_tree=>eventid_checkbox_change.
  event-appl_event = 'X'.
  append event to events.

  call method g_tree->set_registered_events
    exporting
      events = events
    exceptions
      cntl_error                = 1
      cntl_system_error         = 2
      illegal_event_combination = 3.
  if sy-subrc <> 0.
    message a000.
  endif.

* assign event handlers in the application class to each desired event
  set handler g_application->handle_node_double_click for g_tree.
  set handler g_application->handle_item_double_click for g_tree.
  set handler g_application->handle_expand_no_children for g_tree.
  set handler g_application->handle_link_click for g_tree.
  set handler g_application->handle_button_click for g_tree.
  set handler g_application->handle_checkbox_change for g_tree.

posted on 2011-02-23 17:39  zhumk  阅读(1837)  评论(0编辑  收藏  举报