Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ausgeben von einer Datenbank mit TTreeView (https://www.delphipraxis.net/28782-ausgeben-von-einer-datenbank-mit-ttreeview.html)

Jelly 9. Aug 2005 10:03

Re: Ausgeben von einer Datenbank mit TTreeView
 
Wie sieht denn deine Query aus. Irgendwie scheinen da keine Daten gelesen zu werden.

fruity 9. Aug 2005 10:08

Re: Ausgeben von einer Datenbank mit TTreeView
 
Hab ich mir auch schon gedacht,
aber leider kenn ich mich bei den SQL-Strings net so gut aus.

Ich lese die Daten so ein:

SQL-Code:
select * from TreeView
[Edit] Ich verwende die Spalten ID, ParentID und Bezeichnung, wobei fuer den Anfang ID & ParentID vermutlich wichtiger sind [/Edit]

Karstadt 14. Feb 2006 11:48

Re: Ausgeben von einer Datenbank mit TTreeView
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.

Meine SQL Abfrage ist

SQL-Code:

Select wg_1,wg_2,wg_3,wg_4,wg_5,wg_6,wg_7,wg_8,wg_9,wg_10 from warengruppen group by wg_1,wg_2,wg_3,wg_4,wg_5,wg_6,wg_7,wg_8,wg_9,wg_10
Dann lese ich die Datein in einen

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;
Ergebniss ist Fehlerhaft.

Siehe Bild. Wie kann man das Problem bei mir lösen?

Mackhack 6. Apr 2006 15:34

Re: Ausgeben von einer Datenbank mit TTreeView
 
Zitat:

Zitat von Leuselator
Die Tipp- und Umbenennungsarbeit solltest Du eigentlich schon selbst machen:
Delphi-Quellcode:
 

type
  THardware = Record
    Id     : Integer;
    IdParent: Integer;
  end;
  PHardware = ^THardware;
Gruß

Ich habe mir den code mal angesehen und stosse immer wieder auf die gleiche Frage. Ist die IdParent in der Tabelle gespeichert oder wie kann man Id mit IdParent sonst vergleichen?

Kann mir das jemand bitte erklaeren?

Ich habe naemlich eine Tabelle mit folgenden Feldern:
ID, CategoryID und Category und moechte das in einem TTreeView anzeigen lassen. Aber eigentlich nur die CategoryID und die Category.

Vielen lieben Dank!

Karstadt 7. Apr 2006 07:12

Re: Ausgeben von einer Datenbank mit TTreeView
 
Das geht doch viel einfacher! Ich habe das Problem bei mir gelöst!

TTreeView.savetoFile(c:\cxyz.txt) und das speicherst du in die Tabelle ein. zeile für Zeile und in der Spalte 2 nimmst du dir die nummer aus eine Nummerkreisentabelle.

Das klingt zwar kompliziert ist aber sehr einfach :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.
Seite 4 von 4   « Erste     234   

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