![]() |
VirtualTreeView und Baumstruktur (SQL)
Liste der Anhänge anzeigen (Anzahl: 1)
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:
So sieht das aus wenn das Fertig ist.
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; Fehler ist in Hardware-Mäuse-Com1-Schwarz Hardware-Mäuse-PS2-Schwarz Ich bin langsam am Ende, kann mir bitte jemand helfen. |
Re: VirtualTreeView und Baumstruktur (SQL)
warum liest Du Deine Daten nicht erst in ein eigenes Baumobjekt ein und lässt es dann vom VST nur noch anzeigen?
Die setzt dann vst.rootnodecount = meinbaum.Count. und initialisiert das ganze über vst.OnInitNode |
Re: VirtualTreeView und Baumstruktur (SQL)
Mein Problem ist eigentlich eine Struktur zu finden, wie ich die Daten in eine Tabelle sinnvoll eintragen kann und wider auslesen.
Wie soll die Tabellestruktur in meinen Fall sein, denn so wie ich das jetzt habe scheint das nicht zu funktionieren. |
Re: VirtualTreeView und Baumstruktur (SQL)
Zitat:
|
Re: VirtualTreeView und Baumstruktur (SQL)
Ja. Warum nicht. 10 ist Maximum.
|
Re: VirtualTreeView und Baumstruktur (SQL)
dann kannst Du die Struktur ja so lassen
Baum erstellen aus
Delphi-Quellcode:
Ich hoffe, ich hab nix übersehen
TWarengruppe = class;
public ID : String; Untergruppen : TWarengruppeObjectList; end; var root : TWarengruppe; procedure fuellen; var currNode : TWarengruppe; i : Integer; begin über alle tabellenzeilen do begin currNode := root; for i := 0 to 9 do begin if wrg[i] <> '' then begin currNode := currNode.Untergruppen.GetWrg(wrg[i]); //in getWrg Obj bei Bedarf erstellen end else break; end; end; end; |
Re: VirtualTreeView und Baumstruktur (SQL)
Was spricht dagegen, die Warengruppen und Untergruppen in einem table vorzuhalten?
WarengruppenID primär Index - unique WParentID, sekundär Index - nicht unique Warengruppe Im Feld WParentID trägst Du jeweils die ID der "Hauptgruppe" ein. Anbinden an VT und dann sollte es gehen. Emilio |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz