Freigeben über


Hinzufügen und Entfernen von Einträgen in einem Struktur-Steuerelement (TreeView)

Datei: ...\Samples\Solution\OLE\Bldtree.scx

Ein Struktur-Steuerelement (TreeView) zeigt eine Sammlung von Knotenobjekten an, von denen jedes Einzelne aus einer Beschriftung und einem optionalen Bitmap besteht. Nach Erstellen eines Struktur-Steuerelementes können Sie Knotenobjekte hinzufügen, entfernen, anordnen oder anderweitig bearbeiten, indem Sie die Eigenschaften setzen und Methoden aufrufen.

Dieses Beispiel illustriert das Hinzufügen von Knoten zu einem Struktur-Steuerelement, das Entfernen von Knoten, die programmatische Auswahl von Knoten, das Schreiben einer Strukturhierarchie für eine Tabelle sowie das Lesen einer Strukturhierarchie aus einer Tabelle.

Hinzufügen von Knoten

Jeder Knoten in einem Struktur-Steuerelement muss einen eindeutigen Bezeichner in Form einer Zeichenfolge haben, die von der NewKey-Methode in diesem Beispielformular erzeugt worden ist.

*NewKey method
cKey = THIS.cNextKey
THIS.cNextKey = ALLTRIM(STR(VAL(THIS.cNextKey) + 1) + "_")
RETURN cKey

Die Add-Methode des Struktur-Steuerelementes (TreeView) dient dem Hinzufügen neuer Knoten. Der mit dem Click-Ereignis von cmdNewNode assoziierte Code fügt mit Hilfe der Add-Methode einen Knoten auf Stammebene hinzu.

o = THISFORM.oleTree
o.Nodes.Add(,1,THISFORM.NewKey(),"Click to edit text",0)

Der mit dem Click-Ereignis von cmdNewChild assoziierte Code fügt einen dem aktuell ausgewählten Knoten untergeordneten Knoten hinzu.

o = THISFORM.oleTree
IF !ISNULL(o.SelectedItem) THEN
   o.Nodes.Add(o.SelectedItem.Key, 4, THISFORM.NewKey(), "Click to edit text",0)
ENDIF

Entfernen von Knoten

Alle Knoten lassen sich mit Hilfe der Clear-Methode entfernen.

THISFORM.oleTree.Nodes.Clear

Sie können aber auch die ausgewählten Knoten mit Hilfe der Remove-Methode entfernen. Alle untergeordneten Knoten eines gelöschten Knotens werden ebenfalls entfernt.

THISFORM.oleTree.Nodes.Remove(THISFORM.oleTree.SelectedItem.Key)

Schreiben und Lesen von Hierarchien in Tabellen

Soll eine Strukturhierarchie in einer Tabelle gespeichert werden, um sie erneut zu laden und zu editieren, so sind alle Knoten im Struktur-Steuerelement (TreeView) in einer Schleife zu durchlaufen. Dabei sind der Schlüssel, der Schlüssel des übergeordneten Knotens und der Text in die entsprechenden Felder der Tabelle zu schreiben.

FOR i = 1 TO loNodes.Count
   IF ISNULL(loNodes.Item(i).Parent)
      lcParent = "0_" && Root
   ELSE
      lcParent = loNodes.Item(i).Parent.Key
   ENDIF
   INSERT INTO (lcDBFName) VALUES ;
      (loNodes.Item(i).Key, ;
       lcParent, ;
       loNodes.Item(i).Text)
ENDFOR

Zur Wiederherstellung der Strukturhierarchie dienen beim Scannen der Datensätze der Tabelle die Werte des übergeordneten Schlüssels, des Schlüssels und des Textes, so wie sie zuvor gespeichert wurden.

* Fill the TreeView control with values in the table.
o = THISFORM.oleTree.Nodes
   SCAN
      IF ALLTRIM(parent) = '0_'
         o.add(,1,ALLTRIM(key),ALLTRIM(text),0)
      ELSE
         o.add(ALLTRIM(parent),4,ALLTRIM(key), ALLTRIM(text),0)
      ENDIF
      THISFORM.cNextKey = ALLTRIM(STR(VAL(key) + 1) + "_")
   ENDSCAN

Siehe auch

Struktur- und Listenfeld-Drag & Drop | Lösungsbeispiele