Einzelnen Beitrag anzeigen

Karstadt

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

TVirtualStringTree und Warengruppe aus DB

  Alt 14. Feb 2006, 10:12
Datenbank: MYSQL • Version: 4 • Zugriff über: Direkt
Hallo.

So lese ich kategorien in eine

Delphi-Quellcode:
procedure TForm1.BitBtn2Click(Sender: TObject);
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);
Das ist zwar alles gut, wenni ich aber eine Kategorie

hardware-Mäuse-Com11-Schwarz und
hardware-Mäuse-PS2-Schwarz habe dann habe ich ein Problem!


Kurz gesagt ich kann nicht mehr als 3 Kategorien anlegen, sonst kommt das zu eine "Fehler" siehe Bild.
Miniaturansicht angehängter Grafiken
001_153.gif  
  Mit Zitat antworten Zitat