有一个表
a           b            c
ab          0            101
aba         101          10101
abb         101          10102
abaa        10101        1010101
abab        10101        1010102
af          0            101
afa         101          10101
afb         101          10102
afaa        10101        1010101
afab        10101        1010102
ac          0            101
aca         101          10101
acb         101          10102
表中,b为0的是根结点,aba,abb是ab的子结点,abaa,abab是aba的子结点,下面以此类推,这样的treeview应该怎样实现????????????

解决方案 »

  1.   

    Var
      S:String;
      Node1,Node2,Node3;
    Begin
      While ... Do
        Begin
          S:=..................................;
          If S='A' Then
            Begin
              Node1 := suiTreeView1.Items.Add(suiTreeView1.Items.GetFirstNode,'A');
            End;
          If S='Ab' Then
            Begin
              Node2:=suiTreeview1.Items.addchild(Node1,'Ab');
            End;
          If S='Aba' Then
            Begin
              Node3:=suiTreeview1.Items.addchild(Node2,'Aba');
            End;
    //      类推.......
        End;
    End;
      

  2.   

    中文有什么关系,可以这样,code_,codename_一个是代码,名称
    var
      mynode: Treeview;
    Treeview1.Items.AddChild(mynode,adoquery2.fieldbyname('codename_').AsString);//添加名称
      

  3.   

    把表增加几个安段,可以用leftstr()函数把根结点,子结点,子结点的子结点列出来,再用TREEVIEW联接应该OK了,方法很笨!!!不宜采用!
      

  4.   

      看了上面的表,我觉得关系的不是字段A,而是B和C;B是父节点ID,C是当前结点ID;有了这个关联后就有规律有做了。
      首先找出父节点是0的,也就是根目录,添加上去(假设为ab,结点ID为101),再找出父结点ID为101的,添加到ab下面,如此遍历。
      代码有点麻烦,LZ研究研究
      

  5.   

      看了上面的表,我觉得关系的不是字段A,而是B和C;B是父节点ID,C是当前结点ID;有了这个关联后就有规律有做了。
      首先找出父节点是0的,也就是根目录,添加上去(假设为ab,结点ID为101),再找出父结点ID为101的,添加到ab下面,如此遍历。
      具体代码有点麻烦,LZ研究研究
      

  6.   

    表设计得不合理。
    依你的表设计,确定子节点的父节点时,条件:(b=c)且子节点的a字段的前段部份(2*(n-1))[n:=(1,2,3...)]
    与父节点相同.要通过比较两个字节才能确定节点的位置。这样做有点烦琐了。
    不如这样:
    nodename   nodecode   nodefathercode
    ab            01          null
    aba           02           01
    abb           03           01
    abaa          04           02
    abab          05           02
    af            06           null
    afa           07           06
    .....从上面的数据保存结果,很明白就能看出来结构关系了。当然,你可以扩展成更多级数的树。只要增加nodecode,nodefathercode的长度就可以了。