各位DELPHI的FANS,我想解决如下难题:
要实现如下的树型结构:
                                 老总
                  总监A                    总监B                  总监C……
              A经理A      A经理B……
         A主管A    A主管B……
A一般员工A  A一般员工B……    
当A主管升级,降职或离职时,其属下的  A一般员工A  A一般员工B等员工,就直属A经理A管,而且其他树支、结点等可以再任意分。要怎样才能实现如上的树型结构,因为要将一个公司的人员关系用树型图来实现,希望大家帮帮忙,用哪些控件,怎样才能实现。   ********** 数据表方面应该如何设计?*********

解决方案 »

  1.   

    三个字段就行了
    ID,Name,ParentID(上级ID)
      

  2.   

    TreeView组件,你自己写代码来实现
      

  3.   

    谁有例子,发个例子过来好吗?
    我的EMAIL: [email protected]
      

  4.   

    使用递归吧:自己程序的一个过程,参考一下,存储过程查找所有父亲编号等于该节点编号的所有客户,pstr为一个指向字符串的指针。可以把TclientDatset换成任意的数据集
    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;
      

  5.   

    ID,Name,ParentID(上级ID)
    同意银翼天使的做法
    其实每一级别添加一个外键就可以解决的
      

  6.   

    文档中心
    search 关键字  树 ....