点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我想从SALV树中删除选定的节点及其子树。 这适用于我选择的第一个节点。 现在,删除该节点后,我想删除另一个节点。 这将导致一个shortdump(方法TREE_GET_CHILDREN中的异常" NODE_KEY_NOT_FOUND")。
感觉节点索引有刷新或类似的缺失。 还是这仅仅是SAL树的限制? 如何避免转储? 捕获CX_ROOT显然没有帮助。
以下是引发异常的代码段:
这是我编写的代码:
METHOD remove_node。 数据:lo_node类型参考cl_salv_node, lo_item类型参考cl_salv_item, lo_selections类型参考cl_salv_selections_tree。 lo_selections = mo_tree-> get_selections()。 尝试。 lo_item = lo_selections-> get_selected_item()。 lo_node = lo_item-> get_node()。 lo_node-> delete()。 捕捉CX_ROOT。 ENDTRY。 mo_tree-> display()。 ENDMETHOD。
(21.4 kB)
看看示例程序BCALV_TREE_DEMO。 它具有您所需要的一切。
看起来像它。 但是,它基于ALV树,而我正在使用SALV树。 没有用ALV取代SALV的预算,因此我必须设法解决。 据我所知,SALV树是基于ALV树的。 那么,有没有办法使用SALV树不直接提供的ALV树功能?
您好,Patrick,
您第二次尝试删除节点时,是否要删除节点? 先前删除的节点的子节点?
我知道这听起来很傻,但是消息是,您的代码找不到要删除的节点,而DELETE方法删除了所选的节点及其所有子节点。
是的, 我认为索引有些混乱。
我不记得是否有刷新它们的方法,此刻,我正在旅行,因此没有SAP访问权限。
您能否尝试研究所有各种对象,以查看是否可以得到刷新索引的方法。
确认将调试您的代码并记下每次删除的索引。
一周热门 更多>