2

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.
4

2 に答える 2

2

SAPで遊んでからしばらく経ちましたが、行き詰まったときにSAPライブラリが特に役立つといつも思っていました...

私はあなたのためにこれを思いつくことができました:http: //help.sap.com/saphelp_nw04/helpdata/en/47/aa7a18c80a11d3a6f90000e83dd863/frameset.htm、具体的には:

ツリーモデルに新しいノードを追加するときは、フラグITEMSINCOMを「X」に設定します。
これにより、そのノードのアイテムをオンデマンドでロードすることがツリーモデルに通知されます。

それが役に立てば幸い?

于 2008-08-18T04:07:19.173 に答える
0

あなたのコードはうまく見えます、

ADD_NODES_AND_ITEMSノードとアイテムを追加する場合は、自分でメソッドを使用します;)

EXPAND_NODEそれを超えて、アイテム/ノードを追加した後に呼び出してみて、それが役立つかどうかを確認してください。

于 2008-09-15T14:13:09.137 に答える