我使用cl_gui_alv_tree创建了一个ALV TREE报告,该报告有3个级别。我还在双击节点时实现了一个事件处理程序。
我的问题是,我只想在双击作为根节点的节点时才采取某些操作。事件'node_double_click'给出了node_key,但这是显示的表的索引。我怎么能做到这一点?
答案 0 :(得分:2)
节点ID不是索引,它是在将节点添加到树时分配给节点的ID。
如果可能,我建议切换到CL_SALV_TREE
- 不仅因为它是documented
并且受SAP支持,但也因为它带有一些非常方便的查询方法。这些方法是documented as well。例如,您可以使用GET_NODE
按其ID检索节点,然后使用GET_PARENT
检查相关节点是否为顶级节点或是否附加了父节点。
答案 1 :(得分: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.