表结构及记录

object tarea: TFDQuery
    Connection = FDConnection1
    SQL.Strings = (
      'select *'
      'from tArea  order by fParentCode')
    Left = 160
    Top = 240
  end

object tv: TTreeView
    Left = 0
    Top = 0
    Width = 554
    Height = 320
    Align = alClient
    Indent = 19
    TabOrder = 1
    ExplicitLeft = 40
    ExplicitTop = 32
    ExplicitWidth = 121
    ExplicitHeight = 97
  end

代码

procedure TForm1.FormCreate(Sender: TObject);
  var
    nodes:ttreenodes;
    node:ttreenode ;
    CurItem ,CurItem1:Ttreenode ;
    nodestr:string;
    lastparent,temp:string;
    i,j:integer   ;
begin
         TV.Items.Clear;
     nodes:=TV.Items;
     Tarea.Active:=true;
     node:=nodes.add(nil,Tarea.FieldByName('fCode').Value+'_'+Tarea.FieldByName('fNAME').Value);
     Tarea.Next;
     while NOT Tarea.Eof  do
     BEGIN
          if Tarea.FieldByName('fParentCode').AsString='' then
             nodes.add(nil,Tarea.FieldByName('fCode').Value+'_'+Tarea.FieldByName('fNAME').Value);  //省份

if Tarea.FieldByName('fParentCode').AsString<>lastparent then
            //当前记录 fParentCode跟上条记录 fParentCode  不相等,表明是换一个父代了
            //需查找
           begin
              CurItem := TV.Items.GetFirstNode;
                while CurItem <> nil do
                   begin
                    if copy( CurItem.Text,1,pos('_',CurItem.Text)-1) =Tarea.FieldByName('fParentCode').Value then
                       begin
                        CurItem.Selected:=true;
                        break;
                        end;
                       CurItem := CurItem.GetNext;
                   end;
              nodes.addCHILD(CurItem,Tarea.FieldByName('fCode').Value+'_'+Tarea.FieldByName('fNAME').Value);  //
           end;

if (Tarea.FieldByName('fParentCode').AsString<>'')
                              AND
              (Tarea.FieldByName('fParentCode').AsString=lastparent)
              //当前记录 fParentCode跟上条记录 fParentCode  相等,表明是同一个父代了,直接添加就行
              then
              BEGIN
                 nodes.addCHILD(CurItem,Tarea.FieldByName('fCode').Value+'_'+Tarea.FieldByName('fNAME').Value);  //
              END;

lastparent:= Tarea.FieldByName('fParentCode').AsString;
           Tarea.Next;
     END;
     nodes.GetFirstNode;

end;

end.

效果如下

最新文章

  1. 【HTML5】Web Audio API打造超炫的音乐可视化效果
  2. NSLog 占位符
  3. rails日记1
  4. BZOJ1795 : [Ioi2008]Pyramid Base 金字塔地基
  5. Python核心编程笔记(类)
  6. test python
  7. Struts ForwardAction Example
  8. Jdbc工具类(连接及释放)
  9. awstats + tomcat + windows
  10. (简单) POJ 3268 Silver Cow Party,Dijkstra。
  11. lxd-启动篇分析
  12. Java重定向和转发的路径问题
  13. 《java.util.concurrent 包源码阅读》16 一种特别的BlockingQueue:SynchronousQueue
  14. 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中英双语)
  15. java获取客户端ip地址工具类
  16. jquery parents() next() prev() 找父级别标签 找同级别标签
  17. javaBean转为json
  18. CRM N:1 关系或者字段无法删除
  19. 彻底关闭Windows Defender丨Win10
  20. android studio run的时候一直卡在waiting for debug

热门文章

  1. Vue下的index.html
  2. php高精度计算
  3. PAT乙级1044
  4. Lucene简单了解和使用
  5. mysql中对表操作----为所有列插入数据
  6. ajax向后台传递数组参数并将后台响应的数据赋值给一个变量供其它插件使用
  7. [Google Guava] 6-字符串处理:分割,连接,填充
  8. tomcat——web.xml
  9. Luogu P2151 [SDOI2009]HH去散步 矩乘加速DP
  10. 002_linux之点灯(汇编深度解析)