Einzelnen Beitrag anzeigen

Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#5

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