我有一個treeview三級目錄,我想在第三級目錄下於動態增加一個目錄,結構代碼如下:
1
--01
--02
我想在此目錄下再加一級
--03
再後結果為
1
--01
--02
--03
我現在能動態生成到--02,請高手指點如何動態生成--03,代碼如下:
procedure Torder1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
var
GroupId:Integer;
RecordNode:TTreeNode;
PtrMyData:PMyData;
RecordName:String;
query:tadoquery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=cudb01.ADOConnection1;
Query.SQL.Text:='select * from order_1 ';
{如果展開的是組節點,則初始化本小組所對應的記錄點}
if (Node.Parent<>Nil)and(Node.Parent.Text='客戶') then
begin
{刪除每個節點下所對應的多余節點}
Node.getFirstChild.Delete;
{實際添加本組億對應的記錄點}
GroupId:=(PMyData(Node.Data))^.id;
with Query do
begin
SQL.Clear;
SQL.Add('SELECT map_record_id,order_po');
SQL.Add('FROM txl_map,order_1');
SQL.Add('WHERE map_group_id='+IntToStr(GroupId));
SQL.Add('AND map_record_id=order_no');
Open;
While not Eof do
begin
RecordName:=FieldByName('order_po').AsString;
PtrMyData:=new(PMyData);
PtrMyData.Id:=FieldByName('map_record_id').AsInteger;
PtrMyData.NodeType:=1;
RecordNode:=TreeView1.Items.AddChildObject(Node,RecordName,PtrMyData);
RecordNode.ImageIndex:=2;
RecordNode.SelectedIndex:=2;
next;
end;
Close;
end;
end;
1
--01
--02
我想在此目錄下再加一級
--03
再後結果為
1
--01
--02
--03
我現在能動態生成到--02,請高手指點如何動態生成--03,代碼如下:
procedure Torder1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
var
GroupId:Integer;
RecordNode:TTreeNode;
PtrMyData:PMyData;
RecordName:String;
query:tadoquery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=cudb01.ADOConnection1;
Query.SQL.Text:='select * from order_1 ';
{如果展開的是組節點,則初始化本小組所對應的記錄點}
if (Node.Parent<>Nil)and(Node.Parent.Text='客戶') then
begin
{刪除每個節點下所對應的多余節點}
Node.getFirstChild.Delete;
{實際添加本組億對應的記錄點}
GroupId:=(PMyData(Node.Data))^.id;
with Query do
begin
SQL.Clear;
SQL.Add('SELECT map_record_id,order_po');
SQL.Add('FROM txl_map,order_1');
SQL.Add('WHERE map_group_id='+IntToStr(GroupId));
SQL.Add('AND map_record_id=order_no');
Open;
While not Eof do
begin
RecordName:=FieldByName('order_po').AsString;
PtrMyData:=new(PMyData);
PtrMyData.Id:=FieldByName('map_record_id').AsInteger;
PtrMyData.NodeType:=1;
RecordNode:=TreeView1.Items.AddChildObject(Node,RecordName,PtrMyData);
RecordNode.ImageIndex:=2;
RecordNode.SelectedIndex:=2;
next;
end;
Close;
end;
end;
node:=RecordNode;
它就会不断的往下增加子节点,你再根据需要调吧。