Einzelnen Beitrag anzeigen

Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#4

Re: TreeView dynamisch aus einer Datenbank füllen

  Alt 9. Okt 2008, 22:04
Huhu,
Also ein Treeview in einer DB zu speichern ist grundsätzlich "recht einfach" (ok ich hab das bestimmt schon 5-6 mal gemacht .

Am einfachsten ist es Alles in einer TBL zu speichern.
mit Beispielsweise folgendem Aufbau:

Nummer,Ebene,Bezeichnung;
Du machst eine Proc, die RekursivFähig ist!!! <-- das ist der entscheidente Punkt.
Hier hab ich mal n kleines Beispiel zusmmen gestellt.
Ist aber nur Schematisch dargestellt.

Delphi-Quellcode:
Function TreeLoad(TR : ttreeview;AbDatensatz,Ebene : Integer) : Integer; // Gibt die Nr zurück bis wohin diesr Ausruf gearbeitet hat
Begin
  // Daten suchen
  Q1 := TQuery.Create;
  ..
  Q1.SQL.Text := Select * From TBL where Nr >= AbDatensatz order by Nr;

  while not Q1.eof do
  Begin
    if Q1.FieldByName('Ebene').asInteger = Ebene
    then Tr.Items.Add() // Node Erzeugen
    else
    Begin
      if Q1.FieldByName('Ebene').asInteger > Ebene then
      Begin
        BisNr := TreeLoad(TR,Q1.FieldByName('Nr').asInteger,Q1.FieldByName('Ebene').asInteger); // mit der Nächsten Ebene Aufrufen
        Q1.SQL.Text := Select * From TBL where Nr >= BisNr order by Nr;
      End
      else Q1.Prior;

    End;
    Q1.Next;
  end;
  result := Q1.FieldByName('Nr').asInteger;

end;

So habe ich das Problem gelöst.Evebtuell hilft es dir ja ein bisschen weiter.
  Mit Zitat antworten Zitat