unit Hauptprogramm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls,
DB, ADODB, BetterADODataSet, jpeg, ExtCtrls, StdCtrls,
Mask, DBCtrls, Grids, DBGrids, VirtualTrees;
type
TKalk =
class(TForm)
Label1: TLabel;
Label2: TLabel;
Image1: TImage;
ADO_kunden: TADOConnection;
db_kunden: TBetterADODataSet;
db_kundenNummer: TWideStringField;
db_kundenUIDNummer: TWideStringField;
db_kundenAnrede: TWideStringField;
db_kundenAnrede2: TWideStringField;
db_kundenGrad: TWideStringField;
db_kundenVorname: TWideStringField;
db_kundenNachname: TWideStringField;
db_kundenName: TWideStringField;
db_kundenBranche: TWideStringField;
db_kundenBranche2: TWideStringField;
db_kundenStrasse: TWideStringField;
db_kundenLKZ: TWideStringField;
db_kundenPLZ: TWideStringField;
db_kundenOrt: TWideStringField;
db_kundenTelefon: TWideStringField;
db_kundenTelefon2: TWideStringField;
db_kundenTelefax: TWideStringField;
db_kundenZuhanden: TWideStringField;
db_kundeneMail: TWideStringField;
db_kundenWebsite: TWideStringField;
Kunden: TDataSource;
Seitenwahl: TPageControl;
Objektauswahl: TTabSheet;
Kundendaten: TTabSheet;
TreeView1: TTreeView;
ADO_objektkunde: TADOConnection;
ADO_Objektverlauf: TADOConnection;
db_objektkunde: TBetterADODataSet;
db_objektverlauf: TBetterADODataSet;
Objektkunde: TDataSource;
Objektverlauf: TDataSource;
db_objektkundeObjektnummer: TWideStringField;
db_objektkundeKundennummer: TWideStringField;
db_objektkundeObjektbeschreibung: TWideStringField;
db_objektkundeAnrede: TWideStringField;
db_objektkundeKunde: TWideStringField;
db_objektkundeSuchname: TWideStringField;
db_objektkundeBranche: TWideStringField;
db_objektkundeBranche2: TWideStringField;
db_objektkundeStrasse: TWideStringField;
db_objektkundeOrt: TWideStringField;
db_objektverlaufObjektnummer: TWideStringField;
db_objektverlaufKundennummer: TWideStringField;
db_objektverlaufArtdesObjektes: TWideStringField;
db_objektverlaufArtdesObjektesNummer: TWideStringField;
db_objektverlaufBezeichnung: TWideStringField;
db_objektverlaufDatum: TDateTimeField;
db_objektverlaufDateiablage: TWideStringField;
db_objektverlaufSuchnummer: TWideStringField;
db_objektkundeNummerbeschreibung: TWideStringField;
db_kundenSuchname: TWideStringField;
VirtualTreeView1: TVirtualStringTree;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
TTreeDataClass =
class
private
FKunde:
string;
FObjektnummer:
string;
FObjektbeschreibung:
string;
published
property Kunde:
string read FKunde
write Fkunde;
property Objektnummer:
string read FObjektnummer
write FObjektnummer;
property Objektbeschreibung:
string read FObjektbeschreibung
write FObjektbeschreibung;
end;
PTreeData = ^TTreeData;
TTreeData =
record
FObject: TObject;
end;
var
Kalk: TKalk;
avst: TCustomVirtualStringTree;
aNode: PVirtualNode;
aObject: TObject;
implementation
{$R *.dfm}
function TFormChildArchiv.AddVSTObject(avst: TCustomVirtualStringTree; aNode: PVirtualNode; aObject: TObject): PVirtualNode;
var
Data: PTreeData;
begin
Result := avst.Addchild(aNode);
avst.ValidateNode(Result, False);
data := avst.GetNodeData(Result);
data^.FObject := aObjekt;
end;
procedure TVirtualStringTree1.BuildTree;
var
TreeObject: TTreeDataClass;
Wurzel: PVirtualNode;
begin
vst.BeginUpdate;
vst.NodeDataSize := SizeOf(TTreeData);
vst.DeleteChildren(vst.RootNode, true);
TreeObject := TTreeDataClass.Create;
while not db_kunden.Eof
do
begin
TreeObject.Kunde := db_kunden.fieldByName('
Name').AsString;
Wurzel := AddVSTObject(VST,
Nil, TreeObject);
while not db_objektkunde.eof
do
begin
TreeObject.Objektnummer := db_objektkunde.fieldbyName('
Objektnummer').AsString;
TreeObject.Objektbeschreibung := db_objektkunde.fieldbyName('
Objektbeschreibung').AsString;
addvstObject(vst, Wurzel, TreeObject)
db_objektkunde.next;
end;
db_kunde.next;
end;
end;
end;
end.