各位DELPHI的FANS,我想解决如下难题:
要实现如下的树型结构:
老总
总监A 总监B 总监C……
A经理A A经理B……
A主管A A主管B……
A一般员工A A一般员工B……
当A主管升级,降职或离职时,其属下的 A一般员工A A一般员工B等员工,就直属A经理A管,而且其他树支、结点等可以再任意分。要怎样才能实现如上的树型结构,因为要将一个公司的人员关系用树型图来实现,希望大家帮帮忙,用哪些控件,怎样才能实现。 ********** 数据表方面应该如何设计?*********
要实现如下的树型结构:
老总
总监A 总监B 总监C……
A经理A A经理B……
A主管A A主管B……
A一般员工A A一般员工B……
当A主管升级,降职或离职时,其属下的 A一般员工A A一般员工B等员工,就直属A经理A管,而且其他树支、结点等可以再任意分。要怎样才能实现如上的树型结构,因为要将一个公司的人员关系用树型图来实现,希望大家帮帮忙,用哪些控件,怎样才能实现。 ********** 数据表方面应该如何设计?*********
ID,Name,ParentID(上级ID)
我的EMAIL: [email protected]
procedure TCustomerRelationFrm.CreateSubTree_all(FNodeName: string; Node: TreeNode = nil);
var
mLocalName: string;
TreeNode: TTreeNode;
Ads_Tmp: TClientDataset;
p:pstr;
begin
ADS_Tmp := Tclientdataset.Create(Self);
ADS_Tmp.RemoteServer:=mainfrm.SocketConnection1;
ADS_Tmp.ProviderName:='datasetprovider3';
with ADS_Tmp do
begin
Close;
CommandText :='QUERY_customer_By_Parent_No_sec '+''''+FNodeName+''''+','+''''+userid+'''';;
//SELF.Memo1.Lines.Add(commandtext);
Open;
First;
while not Eof do
begin
mLocalName := FieldbyName('ID').Asstring;
new(p);
p^:=mlocalName;
TreeNode :=self.tv_zb.Items.AddChildObject(Node, FieldByName('Name').AsString,p);
CreateSubTree(mLocalName, TreeNode);
Next;
end;
end;
ADS_Tmp.Free;
end;
同意银翼天使的做法
其实每一级别添加一个外键就可以解决的
search 关键字 树 ....