AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zwei Tabel als Baum Darstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Zwei Tabel als Baum Darstellen

Ein Thema von thklingler · begonnen am 3. Mai 2006 · letzter Beitrag vom 8. Mai 2006
Antwort Antwort
Seite 1 von 3  1 23      
thklingler

Registriert seit: 1. Jan 2003
Ort: Bad Wurzach
47 Beiträge
 
Delphi 2006 Enterprise
 
#1

Zwei Tabel als Baum Darstellen

  Alt 3. Mai 2006, 09:39
Datenbank: TurboDB • Version: 5.07 • Zugriff über: mit den TurboDB Componenten
Hallo ich bekomme es nicht hin das meine zwei Tabel als Baum Angezeigt werden.

Tabel1
Hersterller_ID(Autoinc/Key)|Firma(String]

Tabel2
Pr_ID(Autoinc/Key)|Hersterller_ID(integer/RelationHersterller_ID)|Bezeichung(String)

Ich würd das ganz nun gerne als Baum darstellen

+Hersterller1
--Bezeichung 1
--Bezeichung 2
+Hersterller2
--Bezeichung 3
usw.

Ich kann bei TurboDB die Hersteller Bezeichung auch als Link direkt in Tabel2 anzeigen wenn das einfacher ist.
Die Komponenten ELPack und DBTree liegen vor und können benutze werden.

Bitte entschuldigt wenn die Frage dumm ist, aber ich muss zum ersten mal mit Datenbanken arbeiten.
Thomas Klingler
www.setupprofis.de
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Zwei Tabel als Baum Darstellen

  Alt 3. Mai 2006, 10:50
Hallo Thomas,

egal welche TreeView-Komponente du verwendest, die Daten aus der ersten Tabelle besetzen die Ebene 0 in deiner TreeView und die Daten aus der zweiten Tabelle die Ebene 1. Da es sich bei TurboDB meines Wissens um eine lokale Datenbank handelt, kannst du ruhig direkt auf die Table-Komponenten zugreifen und diese über die MasterSource-Eigenschaft miteinander verknüpfen. In den Knoten der TreeView solltest du die ID des jeweiligen Datensatzes als Node.Data mitführen, damit du beim Auswählen eines Knotens sofort auf den Datensatz der Tabelle positionieren kannst.

Grüße vom marabu
  Mit Zitat antworten Zitat
thklingler

Registriert seit: 1. Jan 2003
Ort: Bad Wurzach
47 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Zwei Tabel als Baum Darstellen

  Alt 3. Mai 2006, 14:06
Danke für die schnelle Hilfe, leider reichen meine bescheiden Kentnisse nicht aus um das Umzuseztzen, in welcher Tabele muss(soll) ich die Verknüpfung zum Master machen?
Denn ich kann keinen Tabel als Mastersource deffinieren sondern nur eine Datasourcekomponente. Auch kann ich bei den Komponenten nur die Datasource ansteuern wobei ELPack eine eigene Dataspurckomponente benötig
Thomas Klingler
www.setupprofis.de
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Zwei Tabel als Baum Darstellen

  Alt 3. Mai 2006, 14:15
Nehmen wir an du hast Table1 und Table2, DataSource1 und DataSource2, dann trägst du Table1 als DataSet in DataSource1 ein (Table2 analog) und DataSource1 als MasterSource in Table2.

marabu
  Mit Zitat antworten Zitat
thklingler

Registriert seit: 1. Jan 2003
Ort: Bad Wurzach
47 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Zwei Tabel als Baum Darstellen

  Alt 3. Mai 2006, 14:25
Wenn ich das so mach dann wir im Grid des Datsource2 das ich immoment zur Kontrolle nutz nur noch die Bezeichungen des Hersteller 1 angezeigt ist das OK ?
Thomas Klingler
www.setupprofis.de
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Zwei Tabel als Baum Darstellen

  Alt 3. Mai 2006, 14:34
Das sind die Auswirkungen der Master-Detail-Konfiguration. In einer Baumansicht (TreeView) kann man dann von Knoten zu Knoten springen und dabei die DataSource für ein Grid von DataSource1 auf 2 wechsel. Ob das deinen Wünschen entspricht, musst du besser wissen als ich. Das einzige mir bekannte Element deiner Benutzerschnittstelle war bisher eine TreeView. Vielleicht solltest du dein GUI etwas beschreiben - noch besser einen Screen-Shot zu deiner Beschreibung anhängen.

marabu
  Mit Zitat antworten Zitat
thklingler

Registriert seit: 1. Jan 2003
Ort: Bad Wurzach
47 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Zwei Tabel als Baum Darstellen

  Alt 3. Mai 2006, 15:08
So weit binn ich noch gar nicht , ich Versuch immoment in einem Testprojekt die Daten so darzustellen wie ich mir das Vorstelle.

Meine Idee war dem Nutzer eine Baustruktur anzuzeigen in welcher die Hauptunkte die Hersteller sind, unter jedem Hersteller sollten dann die möglichen Bezeichner stehen.

Wenn ich es so mach wie oben Beschrieben stehen im TreeView nur die Daten des ersten Herstellers mit dem ersten Bezeichner als Hauptkonten. Die zwei Tabel und Datasource komponeten sind wie oben beschreiben eingestellt.

Die Werte des dxDBTreeView1 sind wie folgt eingestellt:

Datasource =Datasource 2
DisplayField=Bezeichung
KeyField=Pr_ID
ListField=Bezeichung
ParentField=Hersteller.

Anbei ein ScreenShoot wie es immoment aussieht.
Miniaturansicht angehängter Grafiken
capture2_148.png  
Thomas Klingler
www.setupprofis.de
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Zwei Tabel als Baum Darstellen

  Alt 4. Mai 2006, 22:04
Hallo Thomas,

die Komponenten von Developer Express sind bei mir leider nicht installiert. Vielleicht kann ja jemand helfen, der mit diesen Komponenten arbeitet?

Gute Nacht

marabu
  Mit Zitat antworten Zitat
thklingler

Registriert seit: 1. Jan 2003
Ort: Bad Wurzach
47 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: Zwei Tabel als Baum Darstellen

  Alt 5. Mai 2006, 11:22
Wenn du mir es mit den ELpack Komponenten oder einer anderen (wenn du mir sagst wo ich diese herbekomme) erkären kannst so das ich es verstehe , ist mir das auch recht ich bin nicht an die Komponente gebunden ich hätte nur gern das aussehen wie Beschrieben.
Thomas Klingler
www.setupprofis.de
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#10

Re: Zwei Tabel als Baum Darstellen

  Alt 5. Mai 2006, 14:21
Moin
Vom Prinzip her machst Du es so:
Delphi-Quellcode:
procedure BaumErstellen;
  var
    tn0, tn1: TTreeNode;
begin
  if not Table1.Active then Table1.Open else Table1.First;
  if not Table2.Active then Table2.Open else Table2.First;

  tvBaum.BeginUpdate; //--ständiges Neuzeichnen unterbinden
  tvBaum.Items.Clear; //--alten Baum leeren

  while not Table1.Eof do
    begin
      //-- Ebene 0 -> Hersteller
      tn0 := tvBaum.Items.Add(nil, Table1.FieldByName('FIRMA').Text);
      tn0.HasChildren := True;

      //-- Ebene 1 -> Bezeichnung
      while not Table2.Eof do
        begin
          tn1 := tvBaum.Items.AddChild(tn0, Table2.FieldByName('BEZEICHNUNG').Text);
          tn1.HasChildren := False;
          Table2.Next;
      end;
      Table1.Next;
  end;

  tvBaum.EndUpdate; //--erstellten Baum anzeigen
end;
{
Somit würde Dein Baum dann so aussehen:
+ Metecno
  G4
  Hipertec
  Hipertec Sound
+ Thyssen
}
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 18:25 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