参考 可能需要把工号和上级工号转换为int procedure TForm1.FormCreate(Sender: TObject); Var idrug:integer; v:Variant; procedure FillTree(TreeNode:TTreeNode;Fathercode:string); Var i:integer; begin with TADOQuery.Create(NIL) do begin Connection :=ADOQuery_title.Connection; Close; SQL.Text :='select * from ch_kind'; Open; Filtered:=False; Filter:='kind_parent='''+Fathercode+''''; Filtered:=True; for i:=0 to RecordCount-1 do begin v:=FieldValues['kind_id']; Node:=ADT_tree.Items.AddChild(TreeNode,VarToStr(FieldValues['kind_name'])); drugrecord[idrug].drugcode:=VarToStr(v); drugrecord[idrug].drug_int:=idrug; Node.Data:=Pointer(v); idrug:=idrug+1; FillTree(Node,VarToStr(v)); Next; end; Free; end; end;begin idrug:=0; FillTree(nil,'0'); end;
首页 - 进入论坛 - 全文检索 - 联系方式
加入收藏>> 帮助手册>> 服务指南>>
当前位置:中文开发在线 -> 首页 -> 黄金文章 -> 正文
将数据表连接到TreeView中 foxfox 摘 要:将数据表连接到TreeView中 关键字:数据表 TreeView 类 别:API CoDelphi.com版权所有,未经允许,不得进行任何形式转载procedure AddDataToTree(TreeView:TTreeView;DataSet:TDataSet) var TreeNodes:TTreeNodes TreeNode:array[0..100] of TTreeNode; i:Integer; begin DataSet.Close; DataSet.Open; TreeNodes=TTreeView.Items; if DataSet.RecordCount>0 then begin DataSet.First; while not DataSet.Eof do begin TreeNode[0]=TreeNodes.Add(Nil,DataSet.Fields[0].AsString); for i=1 to DataSet.Fields.Count-1 do TreeNode[i]=TreeNodes.AddChild(TreeNode[i-1],DataSet.Fields[i].AsString); DataSet.Next; end; end; end;
procedure TForm1.AddSubChild(FNodeName: String; Node: TTreeNode=nil); var LocalName:String; AddChild:TTreeNode; ADOQueryTemp:TADOQuery; begin ADOQueryTemp:=TADOQuery.Create(nil); ADOQueryTemp.Connection:=ADOConnection1; with ADOQueryTemp do begin ADOQueryTemp.Close; ADOQueryTemp.SQL.Clear; ADOQueryTemp.SQL.Add('select * from master where updep='''+FNodeName+''''); ADOQueryTemp.Open; ADOQueryTemp.First; while not eof do begin LocalName:=ADOQueryTemp.fieldByName('Depid').AsString; AddChild:=TreeView1.Items.AddChild(Node,FieldByName('name').AsString); AddSubChild(LocalName,AddChild); Next; end; end; end;procedure TForm1.FormShow(Sender: TObject); begin AddSubChild('S',nil); end;
可能需要把工号和上级工号转换为int
procedure TForm1.FormCreate(Sender: TObject);
Var
idrug:integer;
v:Variant; procedure FillTree(TreeNode:TTreeNode;Fathercode:string);
Var
i:integer;
begin
with TADOQuery.Create(NIL) do
begin
Connection :=ADOQuery_title.Connection;
Close;
SQL.Text :='select * from ch_kind';
Open; Filtered:=False;
Filter:='kind_parent='''+Fathercode+'''';
Filtered:=True; for i:=0 to RecordCount-1 do
begin
v:=FieldValues['kind_id'];
Node:=ADT_tree.Items.AddChild(TreeNode,VarToStr(FieldValues['kind_name']));
drugrecord[idrug].drugcode:=VarToStr(v);
drugrecord[idrug].drug_int:=idrug;
Node.Data:=Pointer(v);
idrug:=idrug+1;
FillTree(Node,VarToStr(v));
Next;
end;
Free;
end;
end;begin
idrug:=0;
FillTree(nil,'0');
end;
首页 - 进入论坛 - 全文检索 - 联系方式
加入收藏>>
帮助手册>>
服务指南>>
当前位置:中文开发在线 -> 首页 -> 黄金文章 -> 正文
将数据表连接到TreeView中
foxfox
摘 要:将数据表连接到TreeView中
关键字:数据表 TreeView
类 别:API
CoDelphi.com版权所有,未经允许,不得进行任何形式转载procedure AddDataToTree(TreeView:TTreeView;DataSet:TDataSet)
var
TreeNodes:TTreeNodes
TreeNode:array[0..100] of TTreeNode;
i:Integer;
begin
DataSet.Close;
DataSet.Open;
TreeNodes=TTreeView.Items;
if DataSet.RecordCount>0 then
begin
DataSet.First;
while not DataSet.Eof do
begin
TreeNode[0]=TreeNodes.Add(Nil,DataSet.Fields[0].AsString);
for i=1 to DataSet.Fields.Count-1 do
TreeNode[i]=TreeNodes.AddChild(TreeNode[i-1],DataSet.Fields[i].AsString);
DataSet.Next;
end;
end;
end;
var
LocalName:String;
AddChild:TTreeNode;
ADOQueryTemp:TADOQuery;
begin
ADOQueryTemp:=TADOQuery.Create(nil);
ADOQueryTemp.Connection:=ADOConnection1;
with ADOQueryTemp do
begin
ADOQueryTemp.Close;
ADOQueryTemp.SQL.Clear;
ADOQueryTemp.SQL.Add('select * from master where updep='''+FNodeName+'''');
ADOQueryTemp.Open;
ADOQueryTemp.First;
while not eof do
begin
LocalName:=ADOQueryTemp.fieldByName('Depid').AsString;
AddChild:=TreeView1.Items.AddChild(Node,FieldByName('name').AsString);
AddSubChild(LocalName,AddChild);
Next;
end;
end;
end;procedure TForm1.FormShow(Sender: TObject);
begin
AddSubChild('S',nil);
end;