procedure TQiuZuDjForm.InitTreeView(Tree: TTreeView; Tablename: string);
var
AQueryTree:TAdoquery; //Query Contrel
QueryStr:string; //Query String
MyNode,MyNodeA:TTreeNode;
//i:Integer;
begin
AQueryTree:=TADOQuery.Create(nil);
AQueryTree.Connection:=DM.ADOCon;
Tree.Items.Clear;
//check paremater
QueryStr:='select * from '+tablename;
AQueryTree.SQL.Text:=QueryStr;
AQueryTree.Open;
//estimate if empty
while not AQueryTree.Eof do
begin
MyNode:=Tree.Items.Add(nil,Trim(AQueryTree.fieldbyname('中山区').AsString));
Tree.Items.AddChild(MyNode,Trim(AQueryTree.fieldbyname('秀月街').AsString));
MyNodeA:=Tree.Items.AddChild(MyNode,'租金:'+Trim(AQueryTree.fieldbyname('租金').AsString));
AQueryTree.Next;
end;
AQueryTree.Free;
end;
这是我初始化树的,我想实现这样的结果怎么做?
中山区
秀月街
租金500
租金600
桃源街
租金400
租金300
沙河口区
XX街
租金400
租金400
XX接
租金400
请问怎么改呀?
var
AQueryTree:TAdoquery; //Query Contrel
QueryStr:string; //Query String
MyNode,MyNodeA:TTreeNode;
//i:Integer;
begin
AQueryTree:=TADOQuery.Create(nil);
AQueryTree.Connection:=DM.ADOCon;
Tree.Items.Clear;
//check paremater
QueryStr:='select * from '+tablename;
AQueryTree.SQL.Text:=QueryStr;
AQueryTree.Open;
//estimate if empty
while not AQueryTree.Eof do
begin
MyNode:=Tree.Items.Add(nil,Trim(AQueryTree.fieldbyname('中山区').AsString));
Tree.Items.AddChild(MyNode,Trim(AQueryTree.fieldbyname('秀月街').AsString));
MyNodeA:=Tree.Items.AddChild(MyNode,'租金:'+Trim(AQueryTree.fieldbyname('租金').AsString));
AQueryTree.Next;
end;
AQueryTree.Free;
end;
这是我初始化树的,我想实现这样的结果怎么做?
中山区
秀月街
租金500
租金600
桃源街
租金400
租金300
沙河口区
XX街
租金400
租金400
XX接
租金400
请问怎么改呀?
解决方案 »
- RMReport打印统计问题
- 貌似用createProcess打开网页后,返回的子进程PID在一次执行结束后会被系统自动提升,变成跟父进程同级的进程
- 图片不能存入数据库
- 如何实现工具栏的窗体图标的高亮度提示
- 如何能将数据记录的两个字段值显示为二维坐标上的点?恳求高手指点!
- 兄弟们救命了!!!!找视频控件
- 我没搞过DELPHI,最新版本是多少?
- 谁有TApdComPort控件的详细说明?小弟急需呀?多谢!
- 如何用ADO连接远程服务器上的SQL2000数据库。
- 为什么当我重复按下键盘的时候,挂钩的键发音不能同步?
- 在delphi中,怎么处理使得窗体大小随着分辨率的改变而改变
- 两个链表的连接问题,在线等...
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////数据库结构: //////////
//////////department: name:部门名称,char //////////
////////// d_no:部门号,int //////////
//////////worker: name:员工姓名,char //////////
////////// w_no:员工号,int //////////
////////// d_no:部门号,int //////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Db, ADODB;type
TForm1 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
ADOQuery1: TADOQuery; //连接department
ADOQuery2: TADOQuery; //连接worker
Edit1: TEdit; //结点信息
procedure Button1Click(Sender: TObject);//生成树
procedure TreeView1Click(Sender: TObject);//显示结点信息
procedure FormClose(Sender: TObject; var Action: TCloseAction);//释放p_data
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
p_data:pstring;
implementation{$R *.DFM}//生成树
procedure TForm1.Button1Click(Sender: TObject);
var
fn,sn:ttreenode; //fn:部门结点 sn:员工结点
begin
treeview1.Items.BeginUpdate;
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from department');
adoquery1.open;
treeview1.Items.Clear;
new(p_data);
p_data^:='root';
fn:=treeview1.Items.AddObject(nil,'root',p_data);
while not adoquery1.Eof do
begin
with treeview1.Items do
begin
new(p_data);
p_data^:=adoquery1.fieldbyname('d_no').asstring;
sn:=treeview1.Items.AddChildobject(fn,adoquery1.fieldbyname('name').asstring,p_data); adoquery2.close;
adoquery2.sql.Clear;
adoquery2.sql.add('select * from worker where d_no=:d_no');
adoquery2.Parameters.ParamByName('d_no').value:=p_data^;
adoquery2.open;
while not adoquery2.Eof do
begin
new(p_data);
p_data^:=adoquery2.fieldbyname('w_no').asstring;
treeview1.Items.addchildobject(sn,adoquery2.fieldbyname('name').asstring,p_data);
adoquery2.Next;
end;
end;
adoquery1.Next;
end;
adoquery1.Close;
adoquery2.close;
treeview1.Items.EndUpdate;
end;//显示结点信息
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if treeview1.Selected=nil then exit; case treeview1.Selected.Level of
1:begin
edit1.text:='部门号:'+pstring(treeview1.selected.Data)^;
end;
2:begin
edit1.text:='工号:'+pstring(treeview1.selected.Data)^;
end;
end;
end;
//释放p_data
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if p_data<> nil then Dispose(p_data);
end;end.