SAP ABAP 列ツリー モデル (基本的にはフォルダーとファイルのツリー、列付き) を使用して項目のリストを表示しています。
フォルダーのサブノードを動的にロードしたいので、正しく発生する EXPAND_NO_CHILDREN イベントを使用しています。
残念ながら、新しいノードとアイテムをツリーに追加した後、フォルダーは自動的に再び折りたたまれ、サブノードを表示するには 2 回目のクリックが必要になります。フォルダーを開いたままにするために、イベントを処理するときにメソッドを呼び出す必要がありますか、それとも何か間違っていますか?
* Set up event handling.
LS_EVENT-EVENTID = CL_ITEM_TREE_CONTROL=>EVENTID_EXPAND_NO_CHILDREN.
LS_EVENT-APPL_EVENT = GC_X.
APPEND LS_EVENT TO LT_EVENTS.
CALL METHOD GO_MODEL->SET_REGISTERED_EVENTS
EXPORTING
EVENTS = LT_EVENTS
EXCEPTIONS
ILLEGAL_EVENT_COMBINATION = 1
UNKNOWN_EVENT = 2.
SET HANDLER GO_APPLICATION->HANDLE_EXPAND_NO_CHILDREN
FOR GO_MODEL.
...
* Add new data to tree.
CALL METHOD GO_MODEL->ADD_NODES
EXPORTING
NODE_TABLE = PTI_NODES[]
EXCEPTIONS
ERROR_IN_NODE_TABLE = 1.
CALL METHOD GO_MODEL->ADD_ITEMS
EXPORTING
ITEM_TABLE = PTI_ITEMS[]
EXCEPTIONS
NODE_NOT_FOUND = 1
ERROR_IN_ITEM_TABLE = 2.