不知道为什么第三层不可以在第二层上展开?我所要展开的层跑到第一层去了?请高手帮我看一下语句,谢谢~~~///////////////// 以下第三层procedure TForm2.AddWorker1(var Node1:TTreeNode);
var
List:TADOQuery;
begin
List:=TAdoQuery.Create(nil);
List.Connection:=dm.ado;
with List do
begin
Close;
Sql.Clear;
Sql.Add('select * from malatamobille.dbo.ICBom where fbomnumber=:par');
parameters.ParamByName('par').Value:=Node1.text;
Prepared;
open;
While not Eof do
begin
TreeView1.Items.AddChild(node1,FieldbyName('fbomnumber').AsString);
next;
end;
end;
List.Free;
end; ///////////////// 以下第二层
procedure TForm2.AddWorker(var Node:TTreeNode);
var
List:TADOQuery;
//////
node1:TTreeNode;
begin
List:=TAdoQuery.Create(nil);
List.Connection:=dm.ado;
with List do
begin
Close;
Sql.Clear;
Sql.Add('exec gbom :par');
parameters.ParamByName('par').Value:=Node.text;
Prepared;
open;
While not Eof do
begin
TreeView1.Items.AddChild(node,FieldbyName('fname').AsString);
node1:=TreeView1.Items.Add(nil,Fieldbyname('fname').AsString);//dept_id
AddWorker1(node1);
next;
end;
end;end;
///////////////// 以下第一层
Procedure TForm2.addDepartment;
var
node:TTreeNode;
begin
With AQlist do
begin
Close;
sql.Clear;
Sql.Add('select * from malatamobille.dbo.ICBomGroup where fparentid=0 order by fname');
Prepared;
open;
While not Eof do
begin
node:=TTreeNode.Create(nil);
node:=TreeView1.Items.Add(nil,Fieldbyname('fnumber').AsString);//dept_id
AddWorker(node);
next;
end;
end;
end;
var
List:TADOQuery;
begin
List:=TAdoQuery.Create(nil);
List.Connection:=dm.ado;
with List do
begin
Close;
Sql.Clear;
Sql.Add('select * from malatamobille.dbo.ICBom where fbomnumber=:par');
parameters.ParamByName('par').Value:=Node1.text;
Prepared;
open;
While not Eof do
begin
TreeView1.Items.AddChild(node1,FieldbyName('fbomnumber').AsString);
next;
end;
end;
List.Free;
end; ///////////////// 以下第二层
procedure TForm2.AddWorker(var Node:TTreeNode);
var
List:TADOQuery;
//////
node1:TTreeNode;
begin
List:=TAdoQuery.Create(nil);
List.Connection:=dm.ado;
with List do
begin
Close;
Sql.Clear;
Sql.Add('exec gbom :par');
parameters.ParamByName('par').Value:=Node.text;
Prepared;
open;
While not Eof do
begin
TreeView1.Items.AddChild(node,FieldbyName('fname').AsString);
node1:=TreeView1.Items.Add(nil,Fieldbyname('fname').AsString);//dept_id
AddWorker1(node1);
next;
end;
end;end;
///////////////// 以下第一层
Procedure TForm2.addDepartment;
var
node:TTreeNode;
begin
With AQlist do
begin
Close;
sql.Clear;
Sql.Add('select * from malatamobille.dbo.ICBomGroup where fparentid=0 order by fname');
Prepared;
open;
While not Eof do
begin
node:=TTreeNode.Create(nil);
node:=TreeView1.Items.Add(nil,Fieldbyname('fnumber').AsString);//dept_id
AddWorker(node);
next;
end;
end;
end;
解决方案 »
- 怎样在程序里为TApdTapiDevice选择猫的驱动
- qrreport的简单问题,打印预览能否调整大小?
- 有谁知道有哪些游戏是用DELPHI做的啊?
- 我要一段把读取EXCEL文档的代码!
- delphi调用dll,结构体作为参数
- 哪里出错了?
- 求助.DLL中使用ADO的问题.
- 请问有哪位老兄自考计算机本科????请进来座座!!!共同探讨!!!
- 看看下面这个文章你也许会改变对Delphi—C++ 的看法:http://scjp.myrice.com/JavaWhy.htm
- ★★★快来抢100分★★★:<<delphi5开发人员指南>>第22章Cetest.dpr运行时提示:[Fatal Error] CompEdit.pas(10): File not found: 'DsgnIntf.dcu',why?
- 招DELPHI开发人员(北京上地)
- indy tcp的测试程序,问题出在哪里?
这里有问题
在一个函数中用循环就可以了,没必要写在三个,而且好像你的可以用递归直接实现了
var
List:TADOQuery;
begin
List:=TAdoQuery.Create(nil);
List.Connection:=dm.ado;
with List do
begin
Close;
Sql.Clear;
Sql.Add('select * from malatamobille.dbo.ICBom where fbomnumber=:par');
parameters.ParamByName('par').Value:=Node1.text;
Prepared;
open;
While not Eof do
begin
TreeView1.Items.AddChild(node1,FieldbyName('fbomnumber').AsString);
next;
end;
end;
List.Free;
end; ///////////////// 以下第二层
procedure TForm2.AddWorker(var Node:TTreeNode);
var
List:TADOQuery;
//////
node1:TTreeNode;
begin
List:=TAdoQuery.Create(nil);
List.Connection:=dm.ado;
with List do
begin
Close;
Sql.Clear;
Sql.Add('exec gbom :par');
parameters.ParamByName('par').Value:=Node.text;
Prepared;
open;
While not Eof do
begin
TreeView1.Items.AddChild(node,FieldbyName('fname').AsString);
node1:=TreeView1.Items.Add(nil,Fieldbyname('fname').AsString);//dept_id
AddWorker1(node1);
next;
end;
end; end;
///////////////// 以下第一层
Procedure TForm2.addDepartment;
var
node:TTreeNode;
begin
With AQlist do
begin
Close;
sql.Clear;
Sql.Add('select * from malatamobille.dbo.ICBomGroup where fparentid=0 order by fname');
Prepared;
open;
While not Eof do
begin
node:=TTreeNode.Create(nil);
node:=TreeView1.Items.Add(nil,Fieldbyname('fnumber').AsString);//dept_id
AddWorker(node);
next;
end;
end;
end;
注意红色部分:第二层中的node1是局部变量,第三层根本访问不到怎么能够显示正确啊,设置为全局变量。
var
List:TADOQuery;
//////
node1:TTreeNode;
begin
List:=TAdoQuery.Create(nil);
List.Connection:=dm.ado;
with List do
begin
Close;
Sql.Clear;
Sql.Add('exec gbom :par');
parameters.ParamByName('par').Value:=Node.text;
Prepared;
open;
While not Eof do
begin
TreeView1.Items.AddChild(node,FieldbyName('fname').AsString);
node1:=TreeView1.Items.Add(nil,Fieldbyname('fname').AsString);//dept_id
AddWorker1(node1);
next;
end;
end; end; 红色部分已经将node1置为第一层了
var
List:TADOQuery;
//////
node1:TTreeNode;
begin
List:=TAdoQuery.Create(nil);
List.Connection:=dm.ado;
with List do
begin
Close;
Sql.Clear;
Sql.Add('exec gbom :par');
parameters.ParamByName('par').Value:=Node.text;
Prepared;
open;
While not Eof do
begin
node1:=TreeView1.Items.AddChild(node,FieldbyName('fname').AsString);
//node1:=TreeView1.Items.Add(nil,Fieldbyname('fname').AsString);//dept_id
AddWorker1(node1);
next;
end;
end; end;