Einzelnen Beitrag anzeigen

Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
461 Beiträge
 
Delphi XE4 Professional
 
#1

Baumstruktur selber zeichnen

  Alt 4. Jul 2016, 15:01
Hallo,

Ich hab in einer Datenbank Datensätze, die untereinander wie in einer Baumstruktur verknüpft sind

Jeder Datensatz hat eine Eindeutige Nummer --> Feld (INR)
und eine Verknüpfung zur INR eines anderen (vorgelagerten) Datensatzes --> Feld (PR)
Root-Datensätze haben als PR = 1


Es gibt maximal 10 Ebenen:

ich könnte die ganze Datenbank durchgehen mit:
Query_1 select * from DB where PR = 1 (Root)
Query_1 onDataChange = while not query_1.EOF -> Query_2 select * from DB where PR = INR von Query_1
Query_2 onDataChange = while not query_2.EOF -> Query_3 select * from DB where PR = INR von Query_2
Query_3 onDataChange = while not query_3.EOF -> Query_4 select * from DB where PR = INR von Query_3
Query_4 onDataChange = while not query_4.EOF -> Query_5 select * from DB where PR = INR von Query_4
Query_5 onDataChange = while not query_5.EOF -> Query_6 select * from DB where PR = INR von Query_5
...


Ich weiß, wie viele UnterObjekte ein Objekt besitzt (recordcount..)

Ich weiß, wie groß ein Datensatz dargestellt werden soll (panel mit 130px mal 25px inkl. Beschriftung) mit OnClick -> eindeutige INR des Datensatzes wird an procedure gesendet

Ich weiß aber NICHT, in welcher Ebene der Datensatz ist - ich hab kein Datenbankfeld, wo das ersichtlich wäre
(hat sich bis dato immer als Knackpunkt erwiesen)



Jetzt will ich die Datensätz (als Panel) wie in einer Baumstruktur zeichnen...
Im Vorfeld dachte ich mir, das wird ganz einfach zu lösen sein .. (naiv)
Die Probleme haben aber überhand genommen

Gibt es dafür einen fertigen Algorithmus oder was brauchbares, der mir die Position zum Zeichnen berechnet?


Vielen Dank für Tipps und Hinweise - wie man sowas richtig macht
Erich
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat