2013-07-19 1 views
3

Я создал отчет ALV TREE, используя cl_gui_alv_tree, который имеет 3 уровня. Я также реализую обработчик событий, когда он дважды нажимает на узел.ALV TREE: Получение уровня узлов

Моя проблема в том, что я хочу предпринять некоторые действия только тогда, когда он дважды нажимает узел, являющийся корневым узлом. Событие «node_double_click» дает node_key, но это индекс отображаемой таблицы. Как я мог это достичь?

ответ

2

Идентификатор узла не является индексом, это идентификатор, присвоенный узлу при добавлении его в дерево.

Если возможно, я хотел бы предложить переход на CL_SALV_TREE - не только потому, что это documented и поддерживается SAP, но и потому, что он приходит с некоторыми методами запросов, которые весьма удобны. Этими методами являются documented as well. Вы можете использовать, например, GET_NODE для извлечения узла по его идентификатору, а затем использовать GET_PARENT, чтобы проверить, является ли данный узел узлом верхнего уровня или к нему прикреплен родительский узел.

1

Я создал шаблон для себя, который я использую.

 lv_parent1 = node_key. 

    while lv_parent1 ne go_Main_tree->C_VIRTUAL_ROOT_NODE. 
     CALL METHOD go_main_tree->get_parent 
     EXPORTING 
      i_node_key  = lv_parent1 
     IMPORTING 
      e_parent_node_key = lv_parent1. 

     lv_hierlevel = lv_hierlevel + 1 . 

    ENDWHILE. 

    if lv_hierlevel > 2. 
     “ do what You want to do 
    endif. 

 Смежные вопросы

  • Нет связанных вопросов^_^