Einzelnen Beitrag anzeigen

Vincend

Registriert seit: 8. Dez 2010
10 Beiträge
 
#2

AW: Sortierung für TJvDBTreeView

  Alt 9. Dez 2010, 17:25
So...
ich hab mir jetzt was anderes überlegt.
Ich muss das ganze nicht in der Query schon sorteirt haben. Ich kann das auch über nen Array machen. Dann müssen die Daten nur dort richtig sortiert werden.

Für das löschen eines ganzes Astes hab ich mir dies hier zusammengebaut:
Code:
      while not b_loeschen_fertig do
      begin
        First;

        while not Eof do //Datensätze zu Array fügen
        begin
          if FieldByName('sub_id_app_menue_xml_inhalte_content').AsInteger = arr_Baum_Loeschen[i] then
          begin
            SetLength(arr_Baum_Loeschen, Length(arr_Baum_Loeschen) + 1);
            arr_Baum_Loeschen[Length(arr_Baum_Loeschen) - 1] := FieldByName('id_app_menue_xml_inhalte_content').AsInteger;
            b_eintrag_gefunden := true;
          end;

          Next;
        end; //Ende while

        //Abbruch wenn keine Datensatz zum Array gefügt wird & das Ende des Array erreicht ist
        if b_eintrag_gefunden = true then b_eintrag_gefunden := false
          else if i = Length(arr_Baum_Loeschen) - 1 then b_loeschen_fertig := true;

        i := i + 1;
      end; //Ende while
Baut auf ner Query auf.
b_loeschen_fertig, b_eintrag_gefunden = boolean
arr_Baum_Loeschen = array of Integer
Im Anschluss lauf ich halt den Array durch und lösche alle Datensätze.

Jetzt will ich das quasy für den Export Teilweise nutzen.
Dazu muss ich ja nur die Wurzel haben (Kein Problem).
Deren Kinder finden und nach "reihenfolge" sortieren (auch kein Problem).
Wenn ich jetzt die Liste durchlaufe muss ich aber den Ast von dort aus weiter runterlaufen bis ich am Ende angekommen bin und das einen weiter Springen in der 1. Child-Liste. Stichwort dabei ist "Rekursion". Nur gut, dass ich genau davon keinen Plan hab wie ich das anstelle weil ja jedes Child Element der Wurzel n Childs haben kann.
Das Problem zu lösen ist bestimmt einfacher?!
  Mit Zitat antworten Zitat