create table a6mm
(code char(7) primary key,
 name varchar(255) not null,
 node char(2) not null)result :
1. 01     type1       1
2. 02     type2       1
3. 0101   type11      2
4. 010101 type111     3
5. 0201   type21      2
6. 0202   type22      2
.........NODE为1的为根节点
2为下一层
……
TYPE1
   TYPE11
     TYPE111
TYPE2
  type21
  type22
怎么样把表中的记录读到TREEVIEW中呀,

解决方案 »

  1.   

    假设层数(NODE)为无穷大呢?
      

  2.   

    参考://数据库中的对应表结构是
    TreeView(cur char(3),upper char(3));
    如:
      cur     upper
    -----------------
      100     
      110     100
      120     100
      111     110
      200
      210     200procedure FillTreeView;//填充树型结构表
    var
      CurLevel,m,n,i,j:integer;
      Emp:boolean;
    begin
      with T_TreeView do//T_Treeview连接TreeView表
      begin
        Open;
        TreeView.Items.Clear;
        First;
        while not Eof do
        begin
          TreeView.Items.Add(nil,FieldByName('cur').asstring);
          Next;
        end;
        CurLevel:=0;
        repeat
          Emp:=true;
          n:=0;
          for i:=0 to TreeView.Items.Count-1 do
          if TreeView.Items[i].Level=CurLevel then
            inc(n);
          for j:=1 to n do
          begin
            m:=0;
            for i:=0 to TreeView.Items.Count-1 do
            if TreeView.Items[i].Level=CurLevel then
            begin
              inc(m);
      if (m=j) then
      begin
        Filter:='upper='''+TreeView.Items[i].Text+'''';
        if RecordCount>0 then Emp:=false;
        First;
        while not Eof do
            begin
          TreeView.Items.AddChild(TreeView.Items[i],FieldByName('cur').asstring);
          Next;
        end;
            Break;
      end;
            end;
          end;
          inc(CurLevel);
        until Emp;
      end;
    end;