Einzelnen Beitrag anzeigen

Benutzerbild von Tyler
Tyler

Registriert seit: 19. Jun 2003
Ort: Berlin
241 Beiträge
 
#2

Re: TreeView - Child vom Child

  Alt 2. Okt 2004, 10:04
*freu*

Ich habs selber, nachdem ich grübelnd eingeschlafen bin, heute morgen mir den Kopf über einer Schüssel Cornflakes zerbrochen hab, und beinahe wahnsinnig geworden bin, kam folgender Algo raus:

Delphi-Quellcode:
var
  i,j,k : Integer;
  vSub1 : Array of String;
begin
  q_Kategorien.SQL.Text := 'SELECT * FROM kategorien WHERE kat2 = 0';
  q_Kategorien.Open;
  q_Kategorien.First;

  j := q_Kategorien.RecordCount;
  SetLength(vSub1, j + 1);

  for i := 1 to j do
  begin
    vSub1[i] := q_Kategorien.FieldValues['kat1'];
    q_Kategorien.Next;
    Memo1.Lines.Add(vSub1[i]);
  end;

  i := 1;
  repeat
    q_Kategorien.SQL.Text := 'SELECT * FROM kategorien WHERE kat1 = ' +
      vSub1[i] + ' ORDER BY kat1, kat2';
    q_Kategorien.Open;
    if q_Kategorien.RecordCount = 1 then
    begin
      nSub1 := tv_Kategorien.Items.AddChild(nMain, q_Kategorien.FieldValues['bezeichnung']);
      Inc(i,1);
    end else begin
      nSub1 := tv_Kategorien.Items.AddChild(nMain, q_Kategorien.FieldValues['bezeichnung']);
      q_Kategorien.Next;
      Inc(i,1);
      for k := 1 to q_Kategorien.RecordCount - 1 do
      begin
        nSub2 := tv_Kategorien.Items.AddChild(nSub1, q_Kategorien.FieldValues['bezeichnung']);
        q_Kategorien.Next;
      end; // FOR K TO RECCOUNT - 1
    end; // IF RECCOUNT = 1
  until i = j + 1 // REPEAT UNTIL I = J
Das einzige ist: Ich musste die DB-Struktur ändern. Es gibt jetzt 3 Integer-Felder:
kat1, kat2, kat3.
Diese beinhalten für sich die Zahl der Kategorie. Kat3 ist erstmal noch ungenutzt, da das einbinden einer 3. Ebene mich erstmal überfordert - da warte ich auf ne kreative Phase im Laufe des WE *g*

Danke für eure geschätzte Aufmerksamkeit
  Mit Zitat antworten Zitat