Einzelnen Beitrag anzeigen

Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#1

VirtualTreeView und Baumstruktur (SQL)

  Alt 14. Feb 2006, 12:05
Hallo. Arbeite seit ein Paar Tagen an eine Lösung wie ich die "Warengruppen" in eine VirtualTreeView einlesenkann.

So Sieht meine Tabelle aus:
wg1-wg10 (10 Felder für maximal 10 Untergruppen) und eine id Feld des Datesnatzes.


So gehe ich vor:

Tabelle

Delphi-Quellcode:
Var
   i:Integer;
   L_Acc_value:Packed array[0..99] of Variant;

  TreeData: TTreeData;
  TestKnoten, Knoten,Knoten_alt,Unter_Knoten_alt: PVirtualNode;
begin
  // Alle Einträge werden gelöscht!
  VST.Clear;

  //Größe von Eingabedaten werden übergeben
  VST.NodeDataSize:=SizeOf(TTreeData);

  //Begine die Knoten einzufügen
  VST.BeginUpdate;

  with q_wg do
  begin
    Close;
    Open;
     First;

    While not Eof do
    begin

      //Hauptknoten! Hauptkategorien
      If L_Acc_Value[0]<> Fields[0].Value then
        begin
          TreeData.FCaption := Vartostr(Fields[0].Value);
          Knoten:=AddVSTStructure(VST,nil,TreeData);
          Knoten_alt := Knoten;
        end
        // Falls in der Hauptkategorie eine weitere Unterkategorie dann wird die hier eingetragen!
        else Knoten := Knoten_alt;
          L_Acc_Value[0]:=Fields[0].Value;

      //Unterknoten, Unterkategorien
      For i:=1 to FieldCount-1 do
      begin

        // Nicht Null, nicht leer, Nicht gleich!
        if (L_Acc_Value[i]<> Fields[i].Value) And (not VarIsNull(Fields[i].Value)) And (Fields[i].Value <> '') then
        begin
          // Nur Zur Kontrolle!!

          Unter_Knoten_alt := Knoten;
          TreeData.FCaption := Vartostr(Fields[i].Value);
          Knoten:=AddVSTStructure(VST,Knoten,TreeData);
        end
        else
        begin
          IF (L_Acc_Value[i] = Fields[i].Value) And (not VarIsNull(Fields[i].Value)) And (Fields[i].Value <> '') Then
          begin
// Showmessage(IntToStr(Knoten.Index));
             Knoten := Unter_Knoten_alt;
          end;
        end;
          L_Acc_Value[i]:=Fields[i].Value;
      end;

      //Nächsten Datensatz
      next;
    end;
  end;

  //Beende die Knoten einzufügen
  VST.EndUpdate;

  //Sortierung, die DS werden per SQL sortiert!

  //Vst.SortTree(1,sdAscending,True);
end;
So sieht das aus wenn das Fertig ist.

Fehler ist in
Hardware-Mäuse-Com1-Schwarz
Hardware-Mäuse-PS2-Schwarz

Ich bin langsam am Ende, kann mir bitte jemand helfen.
Miniaturansicht angehängter Grafiken
002_180.gif  
  Mit Zitat antworten Zitat