AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Ausgeben von einer Datenbank mit TTreeView

Ausgeben von einer Datenbank mit TTreeView

Offene Frage von "fruity"
Ein Thema von ZeroQool007 · begonnen am 30. Aug 2004 · letzter Beitrag vom 7. Apr 2006
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
ZeroQool007

Registriert seit: 30. Aug 2004
127 Beiträge
 
#1

Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 09:56
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....
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 11:09
... wo ist denn genauer dein problem? die daten zu sortieren, damit man diese den items zu weisen kann oder in der erstellung des trees?
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#3

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 11:10
... ach so herzlich willkommen in der dp
  Mit Zitat antworten Zitat
ZeroQool007

Registriert seit: 30. Aug 2004
127 Beiträge
 
#4

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 11:11
Die Darstellung des Trees, die Sortierung in Items usw. bzw die komplette Umsetzung der Aufgabe in die Praxis.....sorry
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#5

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 11:14
... was hast du denn schon ?
  Mit Zitat antworten Zitat
ZeroQool007

Registriert seit: 30. Aug 2004
127 Beiträge
 
#6

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 11:16
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...
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#7

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 11:26
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é
  Mit Zitat antworten Zitat
ZeroQool007

Registriert seit: 30. Aug 2004
127 Beiträge
 
#8

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 11:31
Die Daten bekomm ich über die ADODataSet per SQL Anweisung raus:
Delphi-Quellcode:
select * from tblArtKategorie
order by intArtKatID, intArtKatParentID
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...
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 11:32
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
select * from tabelle where intArtKarID = 0 und setzt dann ID := intArtKatID ;

Dann muss du folgende Abfrage rekursiv durchlaufen:
1.
select * from Tabelle where intArtKatParent = :ID 2. Eintrag in Tabelle einfügen, mit Parent :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
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 30. Aug 2004, 11:35
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:25 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