2013-07-19 2 views
3

cl_gui_alv_tree를 사용하여 3 단계로 구성된 ALV TREE 보고서를 만들었습니다. 또한 노드를 두 번 클릭 할 때 이벤트 핸들러를 구현하고 있습니다.ALV TREE : 노드 레벨 얻기

내 문제는 그가 루트 노드 인 노드를 두 번 클릭 할 때만 일부 작업을 수행하려고합니다. 'node_double_click'이벤트는 node_key를 표시하지만 표시되는 테이블의 색인입니다. 내가 어떻게 이걸 얻을 수 있니?

답변

2

노드 ID는 색인이 아니며 트리에 노드를 추가 할 때 노드에 할당 한 ID입니다.

documented 이며 SAP에서 지원되기 때문에 가능할뿐만 아니라 매우 편리한 일부 쿼리 방법이 포함되어 있기 때문에 가능하면 CL_SALV_TREE으로 전환하는 것이 좋습니다. 이 방법은 documented as well입니다. 예를 들어, GET_NODE을 사용하여 ID로 노드를 검색 한 다음 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.