我左边用的是1st的fctreeview控件,右边是一个dbgrid,fctreeview的结点有那个复选框,我现在左边的fctreeview是一个三层的分类,如
0-全部
  01-一类
    0101-一类一组
  02-二类
    0201-二类一组
    0202-二类二组
…………
1、现在我想实现选取左边的结点(多选),右边的dbgrid根据左边的分类进行筛选;
2、或者是在左边选择结点后,将选择结点名存放到一个数组,以供我写SQL条件调用。
这样的该怎么实现好呢?SQL语句是不是会写的很烦

解决方案 »

  1.   

    www.myjinsui.com/down
    有一个DBTREE,你可以参考
      

  2.   

    烦倒不会,可能会很长.
      i : Integer;
      ids :string;
    begin
      for i := 0 to fcTreeView1.Items.Count -1 do
        if fcTreeView1.Items[i].Checked then begin
           //字符用QuotedStr
           ids := ids + copy(fcTreeView1.Items[i].Text,1,pos('-',fcTreeView1.Items[i].Text)-1)+',';
        end;
      if ids <> '' then Delete(ids,length(ids),1);
      '... where id in ('+ids+')'
      

  3.   

    不麻烦的,只要把选中的节点的值传给sql语句就可以了呀,很方便的。然后在onclick里写右边DBGRID的查询代码就可以了。
      

  4.   

    to lijinghe1:
       是啊,如果照你这样做,语句得好长啊,我怕查询语句会超出允许长度呢。
      

  5.   

    >>查询语句会超出允许长度
    不会的
      

  6.   

    需要拓展DBTREE控件,我们是这样做的,来完成层次码。