Simple_Tree Control - Frage zu nodes_table

Getting started ... Alles für einen gelungenen Start.
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

Simple_Tree Control - Frage zu nodes_table

Beitrag von Mavrix (ForumUser / 58 / 0 / 0 ) »
Hallo zusammen,

habe ein paar Fragen zum Tree Control.

1. Was muss ich nun verwenden? cl_gui_simple_tree oder cl_simple_tree_model?

2. Wie muss ich diese nodes_table aufbauen? Was ist das?

Würde mich sehr freuen wenn mir jemand, schnell auf die Sprünge hilft.

Liebe Grüße
Mavrix

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von dimes (Specialist / 146 / 0 / 0 ) »
Hallo Mavrix,
Also ich hab in einem Report cl_gui_column_tree benutzt...
Ich schick dir hir mal paar teile meines Codes... vielleicht kannst du damit was anfangen.

Code: Alles auswählen.


data: 
* Referenzvariablen deklarieren
  cc_100        type ref to cl_gui_custom_container, "Hauptuntergrund
  "Untergrund für Baumstruktur
  l_docking     type ref to cl_gui_docking_container,
  tree          type ref to cl_gui_column_tree, "Baumstrukture
  G_APPLICATION TYPE REF TO LCL_APPLICATION, "Klasse für Events
* Tabellen und Variablen für die Baumstruktur
         node_table TYPE treev_ntab,
         item_table TYPE standard table of mtreeitm,
         node       LIKE mtreesnode,
         item       TYPE mtreeitm.

    create object cc_100
      exporting
        container_name = '100_CC_01'. "100_CC_01 = CuCtr




* Klasse mit einer Instanzmethode als Behandlermethode für ein Ereignis
* (LINK_CLICK) der Klasse (CL_GUI_COLUMN_TREE)

*---------------------------------------------------------------------*
*       CLASS LCL_APPLICATION DEFINITION
*---------------------------------------------------------------------*
CLASS LCL_APPLICATION DEFINITION.
  public section.
    data: tmp_node_key type TV_NODEKEY,
          tmp_item_name(10) type c.
    methods:
      HANDLE_LINK_CLICK
        FOR EVENT LINK_CLICK
        OF CL_GUI_COLUMN_TREE
        IMPORTING NODE_KEY ITEM_NAME.
ENDCLASS.



*---------------------------------------------------------------------*
*       CLASS LCL_APPLICATION IMPLEMENTATION
*---------------------------------------------------------------------*
CLASS LCL_APPLICATION IMPLEMENTATION.
  METHOD  HANDLE_LINK_CLICK.
    clear: tmp_node_key, tmp_item_name.
    tmp_node_key = node_key.
    tmp_item_name = item_name.
*Musst du noch erstellen um auf einen Event zu reagieren
*perform event_ausfuehren using tmp_node_key tmp_item_name.
  ENDMETHOD.
ENDCLASS.



*Start
perform  voreinstellungen.



*dann musst du die node_table und item_table füllen:

data: verladeziel_key(10)      type c,
         verladeziel_name(25)     type c.
field-symbols: <verladeziel_icon> type any.
assign ICON_WS_TRANSPORT to <verladeziel_icon>.

verladeziel_key =  'Knoten1'.
verladeziel_name = 'Knotentext1'.

    perform node_fill
            using verladeziel_key "node_key
                ' ' "relatkey
                ' ' "relatship
                'X' "isfolder
                'X' "expander(aufreisen)
                <verladeziel_icon>."n_image

    perform item_fill
      using verladeziel_key "node_key
            'col_01' "item_name
             cl_gui_column_tree=>item_class_text "class
            verladeziel_name "text
            ' '. "image

*...weiter befüllen....


*und dann an die Baumstruktur übergeben...

CALL METHOD tree->add_nodes_and_items
      EXPORTING
        node_table                     = node_table
        item_table                      = item_table
        item_table_structure_name      = 'MTREEITM'
       EXCEPTIONS
        FAILED = 1
        CNTL_SYSTEM_ERROR = 3
        ERROR_IN_TABLES = 4
        DP_ERROR = 5
        TABLE_STRUCTURE_NAME_NOT_FOUND = 6.
    IF SY-SUBRC <> 0.
      MESSAGE s001(Z1) with 'Fehler'.
    ENDIF.







*&---------------------------------------------------------------------*
*&      Form  voreinstellungen
*&---------------------------------------------------------------------*
*       Hier werden Voreinstellungen für die Ausgabe der Baumstruktur
*       vorgenommen
*----------------------------------------------------------------------*
FORM voreinstellungen.

* Überschrieft für die im Baumstrukture
  data: hierarchy_header TYPE treev_hhdr.


* UNTERGRUND AUFBAUEN

* Instanz der Klasse CL_GUI_CUSTOM_CONTAINER erzeugen, wenn
* sie nicht schon erzeugt ist
  if cc_100 is initial.
    create object cc_100
      exporting
        container_name = '100_CC_01'.
  endif.

* Untergrund aufteilen
* Wie beim Explorer, einen Kasten Links
* (Ist dafür nötig, damit man später die Baumstruktur auch
*  zur Seite scrollen kann). Wenn mann die Baumstruktur auf den
*  Hauptcontainer aufbaut, dann kann es vorkommen des man nicht alle
*  Spalten der Baumstruktur sieht
  create object l_docking
    exporting
      side      = cl_gui_docking_container=>dock_at_left
      extension = 1260.


* Baumstruktur in den linken Kasten definieren
* und eine Spalte (erste) erstellen
  hierarchy_header-heading = 'Baum'.
  hierarchy_header-width   = 50.

  create object tree
    exporting
      parent                  = l_docking
      node_selection_mode     =
      cl_gui_column_tree=>node_sel_mode_single
      item_selection          = 'X'
      hierarchy_column_name   = 'col_01'
      hierarchy_header        = hierarchy_header.

* Spalten 2 bis 6 erstellen
  perform:
    Baumstrukture_spalte_erstellen using 'col_02' '10' 'INFO',
    Baumstrukture_spalte_erstellen using 'col_03' '40' '',

* EVENTS REGISTRIEREN

  data: G_EVENT(30),
        event type cntl_simple_event,
        EVENTS TYPE CNTL_SIMPLE_EVENTS.

* Link Klick
  event-eventid = CL_GUI_COLUMN_TREE=>EVENTID_LINK_CLICK.
  event-appl_event = 'X'.
  append event to events.

  CALL METHOD TREE->SET_REGISTERED_EVENTS
    EXPORTING
      EVENTS = EVENTS
    EXCEPTIONS
      CNTL_ERROR                = 1
      CNTL_SYSTEM_ERROR         = 2
      ILLEGAL_EVENT_COMBINATION = 3.
  IF SY-SUBRC <> 0.
    MESSAGE s001(z1) with 'Fehler'.
  ENDIF.

  SET HANDLER G_APPLICATION->HANDLE_LINK_CLICK FOR TREE.

ENDFORM.                    " voreinstellungen




*&---------------------------------------------------------------------*
*&      Form  node_fill
*&---------------------------------------------------------------------*
*       Hier wird die Node Tabelle befüllt
*       Sie enhält den bezug einer übergeordneten Zeile (P_RELATKEY)
*       mit einer untergeordneten
*----------------------------------------------------------------------*
FORM node_fill using    P_NODE_KEY P_RELATKEY P_RELATSHIP
                        P_ISFOLDER P_EXPANDER P_N_IMAGE.
  CLEAR node.
  node-node_key  = P_NODE_KEY.
  node-relatkey  = P_RELATKEY. "Bezug auf übergeordneten Ordner
  node-relatship = P_RELATSHIP.
  node-isfolder  = P_ISFOLDER.
  node-expander  = P_EXPANDER.
  node-n_image   = P_N_IMAGE. "symbol des Ordners
  node-exp_image = P_N_IMAGE.
  APPEND node TO node_table.
ENDFORM.                    " node_fill


*&---------------------------------------------------------------------*
*&      Form  item_fill
*&---------------------------------------------------------------------*
*       Hier wird die Item Tabelle befüllt
*       Sie enthält die Informationen einer Zeile
*       (Spalte1, Spalte2,...)
*----------------------------------------------------------------------*
FORM item_fill USING    P_node_key
                        p_item_name
                        P_class
                        P_item-text
                        p_image.
  CLEAR item.
  item-node_key  = P_node_key.   "Bezug
  item-item_name = p_item_name.    "Ausgabe bei welcher Spalte
  item-class     = P_class. "Text zeile
  item-text      = P_item-text.
  ITEM-T_IMAGE   = p_image.
  APPEND item TO item_table.
ENDFORM.                    " item_fill

Hab auch meine Zeit gebraucht bis ich da richtig fit war. aber es lohn sich manchmal...

PS: unter der Transktion dwdm kannst du dir noch eine andere Variante der Baumstruktur anschauen...

Gruß dimes

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1942
Views
ALV-Tree Expand nodes
von dexter » 27.02.2006 10:33 • Verfasst in ABAP Objects®
5
Antw.
9141
Views
ALV Tree expand/collapse nodes
von Neuling_20 » 06.12.2012 08:32 • Verfasst in ABAP® Core
10
Antw.
4214
Views
Simple Tree auf mehreren Dynpros
von joergjoerg » 18.04.2006 15:20 • Verfasst in ABAP Objects®
16
Antw.
9439
Views
Table Control in Custom Control?
von ralf.wenzel » 29.11.2013 21:21 • Verfasst in ABAP Objects®
2
Antw.
2215
Views
tree control
von immo » 27.10.2005 08:18 • Verfasst in ABAP Objects®

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

MS-Word als Editor
vor 5 Tagen von tekko 1 / 759
CC01 + CC02 Klassifizierung anlegen
vor einer Woche von Manfred K. 1 / 970
Formulare aus Fiori debuggen
vor einer Woche von Manfred K. 1 / 942