И снова всем добрый день.
Может кто-нибудь подскажет проще вариант, чем у меня? Или подскажет, что делаю не так во втором способе.
Не нашел никакого "прямого" метода для разворачивания сразу всех узлов, поэтому реализовал с помощью вытаскивания всех узлов и передачей их методу expand_nodes.
Code:
DATA: lt_nodes TYPE lvc_t_nkey.
gor_tree->get_subtree(
EXPORTING
i_node_key = cl_gui_alv_tree=>c_virtual_root_node
IMPORTING
et_subtree_nodes = lt_nodes[]
EXCEPTIONS
node_key_not_found = 1
others = 2
).
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
gor_tree->expand_nodes(
EXPORTING
it_node_key = lt_nodes[]
EXCEPTIONS
failed = 1
cntl_system_error = 2
error_in_node_key_table = 3
dp_error = 4
node_not_found = 5
others = 6
).
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Root узла нет. Пробовал еще с помощью вызова expand_node с передачей в него в качестве узла c_virtual_root_node, но падает в дамп во FLUSH:
Code:
gor_tree->expand_node(
EXPORTING
i_node_key = cl_gui_alv_tree=>c_virtual_root_node
i_expand_subtree = 'X'
EXCEPTIONS
failed = 1
illegal_level_count = 2
cntl_system_error = 3
node_not_found = 4
cannot_expand_leaf = 5
OTHERS = 6
).
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.