also das oben angegebene ist der sql-string einer tquery-komponente.
ich möchte die mitarbeiter einer firma in einer hierarchischen baumstruktur darstellen (chef, abteilungsleiter, personal).
die plus-zeichen, die hochkommas und das komma mit dem darauffolgenden leerzeichen ist dafür da, um beim ablauf des programms die nachnamen, ein komma, ein leerzeichen und dann die vornamen der jeweiligen personen anzuzeigen. soweit funktioniert das ja auch. wenn ich das leerzeichen nach dem komma in dem string allerdings lösche, dann kommt eben dieser fehler.
hier ist der komplette quelltext:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids, ComCtrls, StdCtrls, Mask, DBCtrls, ImgList;
type TForm1 = class(TForm) TreeView1: TTreeView; ImageList1: TImageList; Query1: TQuery; Button1: TButton; Query2: TQuery; Query3: TQuery; Query1nr: TIntegerField; Query1anrede: TStringField; Query1Bez: TStringField; ProgressBar1: TProgressBar; Table1: TTable; Label1: TLabel; DataSource1: TDataSource; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; Label2: TLabel; Label3: TLabel; DBEdit4: TDBEdit; DBEdit5: TDBEdit; Label4: TLabel; Label5: TLabel; Table1Nr: TAutoIncField; Table1Anrede: TStringField; Table1Vorname: TStringField; Table1Nachname: TStringField; Table1Geburtstag: TDateField; Table1Gehalt: TCurrencyField; Table1Raum: TIntegerField; Table1Telefon: TIntegerField; Table1Vorgesetzter: TIntegerField; procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TreeView1Change(Sender: TObject; Node: TTreeNode); private { Private-Deklarationen } public { Public-Deklarationen } end;
var Form1: TForm1;
implementation
{$R *.DFM}
type TArray = array[0..0] of Integer; var anzahl : integer; zeiger: ^TArray;
procedure TForm1.Button1Click(Sender: TObject); var Node1, Node2, Node3 : TTreeNode; i : integer;
begin i := 0; table1.open; anzahl :=Table1.recordcount; progressbar1.max :=anzahl; GetMem(zeiger, sizeof(integer)*anzahl); Node1:= TreeView1.Items.AddChild(TreeView1.Selected, query1['bez']); if query1['anrede']= 'Herr' then node1.imageindex := 2 else node1.imageindex := 1; zeiger^[i]:= query1['nr']; node1.data := Pointer(zeiger^[i]); inc(i); progressbar1.position := i; node1.SelectedIndex := node1.imageindex; query2.active := false; query2.parambyname('nrvorgesetzter').value := query1['nr']; query2.active:=true; while not query2.eof do begin Node2:= TreeView1.Items.addChild(Node1, query2['bez']); if query2['anrede']= 'Herr' then node2.imageindex := 2 else node2.imageindex := 1; node2.SelectedIndex := node2.imageindex; zeiger^[i]:= query2['nr']; node2.data := Pointer(zeiger^[i]); query3.active := false; query3.parambyname('nrvorgesetzter').value := query2['nr']; query3.active:=true; inc(i); progressbar1.position := i; while not query3.eof do begin Node3:= TreeView1.Items.addChild(Node2, query3['bez']); if query3['anrede']= 'Herr' then node3.imageindex := 2 else node3.imageindex := 1; node3.SelectedIndex := node3.imageindex; zeiger^[i]:= query3['nr']; node3.data := Pointer(zeiger^[i]); query3.next; inc(i); progressbar1.position := i; end; query2.next; end; query1.active := False; query2.active := False; query3.active := False; TButton(sender).enabled := false; treeview1.selected := node1;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin FreeMem(zeiger, sizeof(integer)*anzahl); end;
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); begin table1.findkey([integer(treeview1.selected.data)]) end;
end. |