AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualTreeView und Baumstruktur (SQL)

Ein Thema von Karstadt · begonnen am 14. Feb 2006 · letzter Beitrag vom 15. Feb 2006
Antwort Antwort
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
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.643 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: VirtualTreeView und Baumstruktur (SQL)

  Alt 14. Feb 2006, 17:51
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
Sven Harazim
--
  Mit Zitat antworten Zitat
Karstadt

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

Re: VirtualTreeView und Baumstruktur (SQL)

  Alt 15. Feb 2006, 08:14
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.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.643 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: VirtualTreeView und Baumstruktur (SQL)

  Alt 15. Feb 2006, 09:13
Zitat von Karstadt:
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.
Können den mehr als 10 Ebenen (Warengruppen) auftreten?
Sven Harazim
--
  Mit Zitat antworten Zitat
Karstadt

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

Re: VirtualTreeView und Baumstruktur (SQL)

  Alt 15. Feb 2006, 09:21
Ja. Warum nicht. 10 ist Maximum.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.643 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: VirtualTreeView und Baumstruktur (SQL)

  Alt 15. Feb 2006, 09:42
dann kannst Du die Struktur ja so lassen

Baum erstellen

aus

Delphi-Quellcode:
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;
Ich hoffe, ich hab nix übersehen
Sven Harazim
--
  Mit Zitat antworten Zitat
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#7

Re: VirtualTreeView und Baumstruktur (SQL)

  Alt 15. Feb 2006, 10:35
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz