我正在使用SAP ABAP列树模型显示项目列表,基本上是包含列的文件夹和文件树。 我想动态加载文件夹的子节点,所以我正在使用正确触发的EXPAND_NO_CHILDREN事件。 不幸的是,在我将新节点和项添加到树后,文件夹会再次自动折叠,需要再次单击才能查看子节点。 在处理事件时是否需要调用方法以使文件夹保持打开状态,或者我是否在做其他错误的操作?
* 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.
答案 0 :(得分:2)
自从我使用SAP以来已经有一段时间了,但是当我遇到困难时,我总是发现SAP库特别有用......
我设法为你拿出这个: http://help.sap.com/saphelp_nw04/helpdata/en/47/aa7a18c80a11d3a6f90000e83dd863/frameset.htm,具体来说:
将新节点添加到树模型时,将标记ITEMSINCOM设置为“X”。
这将通知树模型您要按需加载该节点的项目。
希望有帮助吗?
答案 1 :(得分:0)
您的代码看起来很好,
如果我要添加节点和项目,我会自己使用方法ADD_NODES_AND_ITEMS
;)
除此之外,尝试在添加项目/节点后调用EXPAND_NODE
,看看是否有帮助。