![]() |
Ausgeben von einer Datenbank mit TTreeView
Moin KOllegen!
Hab folgendes Problem: Möchte diese Tabelle bzw. Datenbank mit der Komponente TTreeView ausgeben: Hab bereits wie ein verrückter gegoogelt, aber nichts wirklich passendes gefunden....die Meisten benutzen Fremdkomponente wie zB VirtualTreeView ect., aber ich möchte bzw ich muss es von meinem Chef aus mit der TTreeView machen....WEr kann bitte helfen bzw auch ein paar Schnipsel anbieten...VIelen Dank im voraus.... |
Re: Ausgeben von einer Datenbank mit TTreeView
... wo ist denn genauer dein problem? die daten zu sortieren, damit man diese den items zu weisen kann oder in der erstellung des trees?
|
Re: Ausgeben von einer Datenbank mit TTreeView
... ach so herzlich willkommen in der dp :dp:
|
Re: Ausgeben von einer Datenbank mit TTreeView
Die Darstellung des Trees, die Sortierung in Items usw. bzw die komplette Umsetzung der Aufgabe in die Praxis.....sorry
|
Re: Ausgeben von einer Datenbank mit TTreeView
... was hast du denn schon ?
|
Re: Ausgeben von einer Datenbank mit TTreeView
Bis auf das Struktogramm mehr oder weniger nichts...wie gesgt bin FIAE im 1. Lehrjahr...1.Monat u hab halt diese Aufgabe bekommen.... :( Halt die Umsetzung ist etwas schwer zur Zeit für mich, da ich leider nicht so viel Erfahrung in Delphi habe...
|
Re: Ausgeben von einer Datenbank mit TTreeView
1. bekommst du denn die daten aus der db?
2. die daten solltest du dann nach der parent-id-spalte sortieren, kann man schon beim abrufen der daten machen, jedenfalls sieht es so aus, als wenn die unterkategorie eine größere id hat als die des parent 3. dann könntest du den baum erstellen und 4. hier im forum gibt es eine tolle suchfunktion und gute tutorien mit denen du anfangen könntest! grüsse rené |
Re: Ausgeben von einer Datenbank mit TTreeView
Die Daten bekomm ich über die ADODataSet per SQL Anweisung raus:
Delphi-Quellcode:
Ich hab schon bereits im Board gesucht, aber nichts wirklich passendes gefunden...die Meisten benutzen andere KOmponenten und deshalb die Probs beim Darstellen des Baumes... :(
select * from tblArtKategorie
order by intArtKatID, intArtKatParentID |
Re: Ausgeben von einer Datenbank mit TTreeView
Hallo,
da gehst du am besten rekursiv durch deine Tabelle, damit du deinen Baum aufbauen kannst... Angefangen wird, indem du dir einen Stammknoten bildest, und dich auf diesen positionierst. Das wär bei dir
SQL-Code:
und setzt dann ID := intArtKatID ;
select * from tabelle where intArtKarID = 0
Dann muss du folgende Abfrage rekursiv durchlaufen: 1.
SQL-Code:
2. Eintrag in Tabelle einfügen, mit Parent :ID
select * from Tabelle where intArtKatParent = :ID
3. ID := intArtKatID (hier dann rekursiver Aufruf) 4. auf nächsten Eintrag in deinem Resultset der Abfrage gehen und zurück zu Punkt 1., bis du am Ender deines Resultset angelangt bist So würd ichs zumindest machen. Gruß, Tom |
Re: Ausgeben von einer Datenbank mit TTreeView
Erstmal ist folgende, grundsätzlich Frage zu klären, die eine mögliche Lösung betrifft:
Liegen die Hauptknoten (intArtKadID) immer in sortierter, aufsteigender Reihenfolge vor? Wenn nein, solltest Du das erstmal durch eine geeignete Sortierung in der Abfrage erreichen (erleichtert den späteren Vorgang erheblich). Ich mache es (zwar mit einem VirtualTreeview) so: - ich lese alle Datensätze ein, dann werden diese in einer Schleife abgearbeitet - ist der aktuelle Knoten ein "root"-Knoten, dann als Root setzen (root-Kennzeichen ist in der DB hinterlegt) - ist der aktuelle Knoten ein "child", dann als Child des betreffenden Roots anhängen (durch die vorherige Sortierung vermeidest Du, dass es ein Child geben könnte, wozu noch kein root-Knoten existiert) Bei der normalen Treeview-Komponente gibt es jetzt das Problem, wo Du diese Relation speicherst, denn Du benötigst dazu mindestens 2 Informationen (KnotenID und Parent/Child-ID). Dazu gibt es die möglichkeit, diese Informationen in einer gesonderten Datenstruktur, die Du dann mittels "Tag" mit dem jeweiligen Node verknüpfst, zu hinterlegen - musst Du aber dann auch separat abspeichern. Grds. rate ich Dir (trotz Deines Chefs) vom normalen Treeview für solche Aufgaben ab. Hintergrund: Du kannst nur die Abhängigkeit darstellen, aber keine zusätzlichen Informationen anzeigen, wie z.B. Anschaffungskosten, Standort, etc. Dies wäre eine Mischung aus TV und Listview - und genau das bietet der VirtualTreeview. Schau Dir dazu mal den Windows Datei Explorer an. Links hast Du die Ordnerabhängigkeiten und rechts die Ordnerinhalte - sehr unschön für eine Anwendung, wie Du sie planst. Alternativ kann man evtl. Zusatzinformationen noch in einer separaten Form anzeigen lassen - noch unschöner ;-) Gruß Igotcha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz