2008-08-11 21 views
2

J'affiche une liste d'éléments en utilisant un modèle d'arborescence de colonnes SAP ABAP, essentiellement un arbre de dossiers et de fichiers, avec des colonnes. Je veux charger les sous-nœuds de dossiers dynamiquement, donc j'utilise l'événement EXPAND_NO_CHILDREN qui se déclenche correctement. Malheureusement, après avoir ajouté les nouveaux nœuds et éléments à l'arborescence, le dossier s'effondre automatiquement, ce qui nécessite un second clic pour afficher les sous-nœuds. Ai-je besoin d'appeler une méthode lors de la gestion de l'événement pour que le dossier reste ouvert, ou est-ce que je fais autre chose de mal?Le modèle ABAP Column Tree ne développe pas le noeud après l'événement 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

Il pourrait s'agir d'un arrangement obscur de drapeaux - pourriez-vous essayer d'afficher un exemple de travail minimal? – vwegert

Répondre

2

Il a été un moment que je l'ai joué avec SAP, mais je trouve toujours la bibliothèque SAP pour être particulièrement utile quand je suis coincé ...

J'ai réussi à trouver celui-ci pour vous: http://help.sap.com/saphelp_nw04/helpdata/en/47/aa7a18c80a11d3a6f90000e83dd863/frameset.htm, plus précisément:

Lorsque vous ajoutez de nouveaux nœuds au modèle d'arbre, définissez l'indicateur ITEMSINCOM 'X'.
Cela informe le modèle d'arborescence que vous souhaitez charger les éléments pour ce noeud à la demande.

Espérons-nous que cela aide?

0

Votre code semble bien,

J'utilise moi-même la méthode ADD_NODES_AND_ITEMS si je devais ajouter des nœuds et des éléments;)

Au-delà, essayez d'appeler EXPAND_NODE après avoir ajouté les éléments/noeuds et voir si cela aide.