2008-08-11 5 views
2

Ich zeige eine Liste von Elementen mithilfe eines SAP-ABAP-Spaltenbaummodells an, im Grunde eine Baumstruktur von Ordnern und Dateien mit Spalten. Ich möchte die Unterknoten von Ordnern dynamisch laden, daher verwende ich das EXPAND_NO_CHILDREN-Ereignis, das korrekt ausgelöst wird. Leider, nachdem ich die neuen Knoten und Elemente zur Struktur hinzugefügt habe, wird der Ordner automatisch wieder kollabiert und erfordert einen zweiten Klick, um die Unterknoten anzuzeigen. Muss ich beim Behandeln des Ereignisses eine Methode aufrufen, damit der Ordner geöffnet bleibt oder mache ich etwas anderes falsch?ABAP-Spaltenbaum Modell erweitert Knoten nach EXPAND_NO_CHILDREN-Ereignis nicht

* 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

Es könnte eine obskure Anordnung von Flags sein - könnten Sie versuchen, ein minimales Arbeitsbeispiel zu veröffentlichen? – vwegert

Antwort

2

Es ist schon eine Weile her, seit ich mit SAP gespielt habe, aber ich fand immer die SAP-Bibliothek besonders hilfreich sein, wenn ich stecken geblieben ...

ich mit diesem kommen geschafft, speziell http://help.sap.com/saphelp_nw04/helpdata/en/47/aa7a18c80a11d3a6f90000e83dd863/frameset.htm,: Sie

Wenn Sie neue Knoten zum Baum Modell hinzufügen, setzen Sie das Flag ITEMSINCOM auf 'X'.
Dies informiert das Baummodell, dass die Elemente für diesen Knoten bei Bedarf geladen werden sollen.

Hoffe es hilft?

0

Ihr Code sieht gut aus,

ich die Methode verwenden würde ADD_NODES_AND_ITEMS selbst wenn ich Knoten und Elemente hinzuzufügen;)

Darüber hinaus versuchen EXPAND_NODE zu rufen, nachdem Sie die Einzelteile/Knoten hinzugefügt und sehen wenn das hilft.