Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi VirtualTreeView > Baumstruktur > DatenBank (https://www.delphipraxis.net/15620-virtualtreeview-baumstruktur-datenbank.html)

Tau 1. Feb 2004 16:45


VirtualTreeView > Baumstruktur > DatenBank
 
Hallo Laute

Ich Beschäftige mich seit geraumer Zeit mit dem VirtualTreeView
von Mike Lischke (www.delphi-gems.com).

Es ist eine wirklich gelungen Komponente mit sehr vielen Extras und einstellungs- Möglichkeiten.
Was bei mir leider überhaupt nicht in meine Schädel will, ist wie muss eine DatenBank
aufgebaut sein das ich ein Baumstruktur daraus auslesen kann.
Das Tutorial von www.delphi-treff.de VirtualTreeView Tuorial hat mir leider nicht ganz helfen können.

Hat jemand ein kleines Demo wo ich mir den Aufbau der Daten Struktur anschauen kann.
Ich sehe leider den zusammenhang zwischen den Nodes und der DatenBank leider nicht. :wall:

Für einen Tipp oder eine Anregung währe ich sehr Dankbar.

Gruß
Tau

APP 1. Feb 2004 19:54

Re: VirtualTreeView > Baumstruktur > DatenBank
 
Hallo Tau,
scghau Dir doch einmal das Virtual TreeView and Databases Demo auf Mikes Homepage an, da wird eine BDE-Demodatenbank in den VT geladen.

Jens Schumann 1. Feb 2004 22:09

Re: VirtualTreeView > Baumstruktur > DatenBank
 
Hallo Tau,
ich kenne die angesprochene Komponente nicht.
Aber der Zusammenhang zwischen Nodes und Datenbankfeldern ist folgender.
Du brauchst min. zwei Felder um eine Baumstruktur in einer Tabelle abzubilden.
In einem speicherst Du einen eindeutigen Wert für jeden Datensatz. Das wäre
in meiner Terminologie die ID. Dafür eignet sich besonders gut ein AutoInc Feld.
Im zweiten Feld speicherst Du dann die ParentID. Diese beiden Werte beschreiben ein
Node in einem Baum. Die ParentID eines Nodes(A) ist die ID des Nodes(B) unter dem der Node(A)
im Baum hängen soll.
Hier ein kleines Beispiel:
Code:
ID | ParentID | Text
1       0        Node1 
2       1        Node2
3       2        Node3
4       1        Node4
Der Baum dazu würde dann folgendermaßen aussehen
Die Parent ID 0 steht für die Wurzel des Baumes
Code:
Node1
|
|--Node2
|  |
|  |-Node3

|--Node4
Der Trick ist es jetzt die Tabelle so auszulesen, das z.B. in einem TreeView der Baum entsteht.

Tau 2. Feb 2004 05:15

Re: VirtualTreeView > Baumstruktur > DatenBank
 
Hallo APP u. Jens

APP
Das Demo von Mikes Homepage kenne ich bereits. Das Problem dabei ist, das die Daten wie in einen Grid eingelesen und leider nicht in einer Baumstruktur. Trotzdem Danke.

Jens
Danke für die anschauliche Demonstration. Sie hat mir sehr geholfen zu verstehen, wie das Verhältnis zwischen der DatenBank und der Baumstruktur aussehen muss.

Trotzdem bleibt noch die Frage offen wie ich das VirtualTreeView und
die DatenBank verbinden muss um die gewünschte Baumstruktur zu erhalten.

Habe leider keinen Ansatz wie ich das bewerkstelligen soll. :wall:

Gruß
Tau

DelphiDeveloper 3. Feb 2004 11:10

Re: VirtualTreeView > Baumstruktur > DatenBank
 
Hallo tau,
dmit wir dein problem nachvollziehen können müsstest du uns
mitteilen wie du denn deine Daten in der datenbank ablegt hast und
welche vorstellung du von der Baumstruktur hast.

simples beipspiel:
Es sollen Alle Kunden im Baum mit Ihren auftraegen dargestellt werden. Im Auftrag selber dann noch eine ebene tiefer die auftragsdetails

also wir haetten
Tabelle Kunde
Tabelle Auftrag
Tabelle Auftragdetail

Der Baum sollte dann etwa so aussehen

Code:
-KundeA
 |---Auftrag 4711
     |-- Detail 4711-1
     |-- Detail 4711-2
 |---Auftrag 4712
     |-- Detail 4712-1
-KundeB
...
Das ganz läuft also darauf hinaus das du die Tabellen bspw. mit geschachtelten
while schleifen durchläufst und je nachdem entsprechende Knoten und Unterknoten
in dem baum erzeugst.

pseudocode
Code:
while kunde not eof do
begin
  erzeuge kundenknoten
  //in parametrisierte query auftrag alle auftrage des akt kunden holen
  while auftrag not eof do
  begin
    erzeuge unterknoten in akt kunden
    //in parametrisierte query auftragdetail alle auftragsdetails des akt auftrag holen
    while auftragsdetial not eof do
    begin
      erzeuge unterknoten in akt auftrag
    end
  end

end

Tau 3. Feb 2004 23:52

Re: VirtualTreeView > Baumstruktur > DatenBank
 
Hallo DelphiDeveloper


Danke für das anschauliche Beispiel.

Es funktioniert D A N K E :witch: :dancer2: :witch: :dancer2: :witch:


Gruss
Tau

HomerGER 27. Nov 2004 12:11

Re: VirtualTreeView > Baumstruktur > DatenBank
 
Hallo
danke erst mal für das Licht in der Dunkelheit auch von mir
Ich habe nur ein Problem
wie mach ich es mir NodeDataSize wenn ich die werte über die whileschleife aus 3 tabellen auslese?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz