AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Sortierfunktion für Treestruktur
Thema durchsuchen
Ansicht
Themen-Optionen

Sortierfunktion für Treestruktur

Ein Thema von Gruber_Hans_12345 · begonnen am 2. Mär 2007 · letzter Beitrag vom 6. Mär 2007
Antwort Antwort
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.441 Beiträge
 
Delphi 2007 Professional
 
#1

Re: Sortierfunktion für Tree

  Alt 3. Mär 2007, 11:14
hmmm, aber da habe ich keine sortierung dabei (achtung, ich muß mit PrevID sortieren, und habe somit keine möglichkeit die sortierung dem SQL Server zu überlasssen, und muß daher immer im nachhinein manuell sortieren)
und ich möchte auch gerne alle Daten auf einmal in einer einzigen SQL Query abfragen, und nicht für jeden Zweig eine neue SQL Anweisung machen

meine SQL Anweisung fürs laden :
Delphi-Quellcode:
   R.CheckSQL(sql, doClose);
   sql.SQL.Text   := 'SELECT ID, PARENTID, PREVID FROM TEILE WHERE AUFTRAG = :ID ORDER BY PARENTID, PREVID';
   sql.ParamByName('ID').AsInteger   := AuftragID;
   sql.Open;
   while not sql.Eof do
      AddItem.LoadFromSQL(sql, TRUE);
   if doClose then R.CloseSQL(sql);

also, das ist etwas grob vereinfacht die Sortierfunktion, wie ich die jetzt verwende ...
(ich glaub, man sieht gleich warum ich da eine andere haben möchte )

Delphi-Quellcode:
   procedure InserItems(item : TItem; listNew : TList);
   var
      i      : integer;
   begin
      // in neue Liste einfügen, und aus alter löschen
      listNew.Add(item);
      Remove(item);
      
      // erstes Child Element suchen
      for i:=0 to Count-1 do
         if (Item[i].ParentID = itemID) and (Item[i].PrevID = 0) then begin
            InsertItems(Item[i], listNew);
            break;
         end;
      
      // Nächstes Element suchen
      for i:=0 to Count-1 do
         if (Item[i].PrevID = itemID) then begin
            InsertItems(Item[i], listNew);
            break;
         end;
   end;
   
   listNew   := TList.Create;
   InsertItems(listNew[0], listNew);   
   Assign(listNew);
   listNew.Free;
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:21 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