列树模型在事件发生后不展开节点EXPAND_NO_CHILDREN

Column Tree Model doesn't expand node after EXPAND_NO_CHILDREN event

提问人: 提问时间:8/11/2008 最后编辑:Sandra Rossi 更新时间:12/27/2020 访问量:4434

问:

我使用 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.
事件 TreeView ABAP

评论

0赞 vwegert 3/23/2012
这可能是一些晦涩难懂的标志排列 - 你能尝试发布一个最小的工作示例吗?

答:

2赞 Pat Hermens 8/18/2008 #1

我已经有一段时间没有玩过 SAP 了,但我总是发现 SAP 库在我遇到困难时特别有用......

我设法为你想出了这个: http://help.sap.com/saphelp_nw04/helpdata/en/47/aa7a18c80a11d3a6f90000e83dd863/frameset.htm,具体来说:

将新节点添加到树模型时,请将标志 ITEMSINCOM 设置为“X”。
这会通知树模型您要按需加载该节点的项。

希望对您有所帮助?

0赞 tomdemuyt 9/15/2008 #2

你的代码看起来不错,

如果我要添加节点和项目,我会自己使用该方法;)ADD_NODES_AND_ITEMS

除此之外,尝试在添加项目/节点后调用,看看是否有帮助。EXPAND_NODE