AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi VST aus 2 SQL-Tabellen Baumstruktur erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

VST aus 2 SQL-Tabellen Baumstruktur erzeugen

Ein Thema von dreder · begonnen am 17. Sep 2007 · letzter Beitrag vom 17. Sep 2007
Antwort Antwort
dreder

Registriert seit: 7. Sep 2007
1 Beiträge
 
#1

VST aus 2 SQL-Tabellen Baumstruktur erzeugen

  Alt 17. Sep 2007, 14:55
Hallo Leute,

ich versuche eine Baumansicht im VST darzustellen. Dazu möchte ich aus zwei miteinander verknüfte SQL-Tabellen
im VST anzeigen ohne Spalten (wie eine Explorer Ansicht). Ich habe schon alle Foren nach einer Lösung durchsucht,
ohne Erfolg. Leider ist die VST schwer zu Verstehen und die Doku dazu.. na ja, hab schon bessere Beschreibungen gesehen.

Bitte kann mir da jemand weiterhelfen.
Bitte nur die VST. Ich habe es auch mit TDBVST probiert, ist aber nicht das was ich nutzen kann.
Dafür benötigt man eigene Tabellen.

Meine Aufgabe: Struktur der Baumansicht
WoNumber=10001
+++++|__PartName=P227
++++++++++++++++++|__Material=1.4301
++++++++++++++++++|__Thickness=6
++++++++++++++++++|__QTY=5
++++++++++++++++++|__QTYOrdered=5
+++++|__PartName=P237
++++++++++++++++++|__Material=1.4403
++++++++++++++++++|__Thickness=8
++++++++++++++++++|__QTY=51
++++++++++++++++++|__QTYOrdered=51
+++++|__PartName=P603
++++++++++++++++++|__Material=SS
++++++++++++++++++|__Thickness=12
++++++++++++++++++|__QTY=10
++++++++++++++++++|__QTYOrdered=10
WoNumber=10002
+++++|__PartName=P701
++++++++++++++++++|__Material=ST37
++++++++++++++++++|__Thickness=5
++++++++++++++++++|__QTY=5
++++++++++++++++++|__QTYOrdered=5
Ich habe zwei SQL-Tabellen die über die Spalte WoNumber verknüpft sind. Siehe Bild
Dort sieht man auch gleich wo das Problem liegt.

Ich dachte ich gehe den richtigen Weg wenn ich die OnInitNode und OnGetText nutze, krieg das aber nicht hin.
Hier meine Vorgehensweise
type
// Definition der Daten:
PMyData = ^TMyData;
TMyData = record
WONumber: integer;
Level: integer;
CustomerName:String[100];
PartName:String[100];
Material:String[50];
Thickness:Double;
end;

procedure TForm1.RebuildTree;
begin
VTree.RootNodeCount := ADOWo.RecordCount;
VTree.NodeDataSize := SizeOf(TMyData);
end;

procedure TForm1.VTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var data:PMyData;
begin
data := Sender.GetNodeData(Node);
case sender.GetNodeLevel(node) of
0: celltext:=inttostr(data.WONumber);
1: celltext:=data.PartName;
2: celltext:=data.Material; // keine Ahnung was hier geschehen muss
end;
end;

procedure TForm1.VTreeInitChildren(Sender: TBaseVirtualTree;
Node: PVirtualNode; var ChildCount: Cardinal);
begin
// set childcount to the detail dataset's recordcount
ADOWO.RecNo := node.Index+1;
childcount := ADOPART.RecordCount;
end;

procedure TForm1.VTreeInitNode(Sender: TBaseVirtualTree; ParentNode,
Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var data:PMyData;
begin
data := Sender.GetNodeData(Node);
if Sender.GetNodeLevel(Node) = 0 then
begin
// master node - WoOrderNumber
ADOWO.RecNo := node.Index + 1;
data.WONumber := ADOWO.FieldByName('WONumber').asInteger;

if ADOPART.RecordCount > 0 then InitialStates:=InitialStates+[ivsHasChildren];
// ******* bis hierhin alles ok
end else
begin
// detail node - order
if Sender.GetNodeLevel(Node) = 1 then InitialStates:=InitialStates+[ivsHasChildren];
data.PartName := ADOPART.fieldbyname('PartName').AsString;
// ******* ab hier beginnen die Probleme
data.Material := 'Material : ' + ADOPART.fieldbyname('Material').AsString;
end;
end;

Danke schon mal für...
DETLEF
Miniaturansicht angehängter Grafiken
vstview_193.jpg  
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: VST aus 2 SQL-Tabellen Baumstruktur erzeugen

  Alt 17. Sep 2007, 18:52
Hallo dreder,

auch wenn ich nicht weiss was VST ist, vielleicht hilft dir das hier ja weiter.

Gruss
Thorsten
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#3

Re: VST aus 2 SQL-Tabellen Baumstruktur erzeugen

  Alt 17. Sep 2007, 21:39
das ihr euch immer auf initnode usw. einschiesst.

initnode kann effektiv verwendet werden um masse schnell in den baum zu bekommen.
strukturen lassen sich mit dem klassischen weg via 2 schleifen (durch die datensätze) und mit vst.addchild einfacher zusammen bauen.
wenn du es dann super effektiv haben willst, schaust du die die sql sachen auf welche mein vorschreiber hingewiesen hat.

dann verstehe ich nicht warum ihr alle records verwendet.
wir haben hier eine oo-sprache.

records=old school
objects=new school

hier mal bitte schauen und den post #4 beachten - da war noch ein fehler drin:
http://www.delphipraxis.net/internal...=484809#484809
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  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 16:05 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