数据库表信息
科室   姓名  编码
人事科 张三  001 
人事科 李四  002
人事科 王五  003
财务科 赵八  004
财务科 魏九  005
....生成树形列表人事科
       张三  
       李四  
       王五 
财务科
       赵八  
       魏九 
并可以单选中一个或几个人传到DBG里做查询。谢谢了!小弟新手!请教思路,控件,方法等。

解决方案 »

  1.   

    要有科室表,人员表,人员表中设置所属的科室。 控件可以用自带的TreeView或者直接用CXDBTREE
      

  2.   

    最简单的方法就是用两个adoquery查询,一个查询科室,另一个根据前一个查询到的科室查询其它内容,然后加到treeview里去,treeview简单操作问百度即可
    http://www.cnblogs.com/piaoliuxia/archive/2008/09/06/1937317.html
      

  3.   

    如果是这样数据就简单,adoquery查询数据按科室排序,然后循环添加进去
    下面是生成树:var
      fNode:TTreeNode;
      s:string;
    begin
      s:='';
      fNode:=nil;
      with adoquery1 do
      begin
        first;
        while not eof do
        begin
          if s<>fieldbyname('科室').AsString then
             fNode:=TreeView1.Items.Add(nil,fieldbyname('科室').AsString);      TreeView1.Items.Add(fNode,fieldbyname('姓名').AsString);
          s:=fieldbyname('科室').AsString;
          next;
        end;
      end;至于选择与取值,方法很多,可以在节点前面加个checkbox
    这里提供一个方法:可以是2张图片,一张只是方框,一张方框里面打勾
    选择的时候,就切换图片动动手,不难实现的
      

  4.   

    既然是自己关联在一起的,那就在SQL里面多做些工作,用SQL在虚拟表里把树形做出来,然后直接加载数据集成树显示出来就可以了。