我想做个和类似用友科目的treeview常用
资产-
     |-101 现金
     |-102 银行存款
     :
     :
     |-109 其他货币资金负债
损益-
     |-501 产品销售收入
     |-502 产品销售成本
     :
     :
     |-550 所得税表: cclass    ccode   ccode_name
     资产       101      现金
     资产       102      银行存款
     资产       109      其他货币资金
                    损益       501       产品销售收入
     损益       502       产品销售成本
     损益       550       所得税怎么实现啊? 请大侠指教!

解决方案 »

  1.   

    这是我原来的代码,但是不是我要的效果  我也没都看明白,也是我在这找的。
    function StrLeft(const mStr: string; mDelimiter: string): string;
    begin
      Result := Copy(mStr, 1, Pos(mDelimiter, mStr) - 1);
    end; { StrLeft }function StrRight(const mStr: string; mDelimiter: string): string;
    begin
      if Pos(mDelimiter, mStr) <= 0 then
        Result := ''
      else Result := Copy(mStr, Pos(mDelimiter, mStr) + Length(mDelimiter), MaxInt);
    end;  { StrRight }procedure TForm1.FormCreate(Sender: TObject);
    var
      I: Integer;
      vTreeNode: TTreeNode;
    begin
      ADOQuery2.Open;
      ADOQuery2.First;
      TreeView1.Items.Clear;  while not ADOQuery2.Eof do begin
        vTreeNode := nil;
        for I := 0 to TreeView1.Items.Count - 1 do begin
          if (Pos(StrLeft(TreeView1.Items[I].Text, #32),
            ADOQuery2.FieldByName('ccode').AsString) = 1) then begin
            vTreeNode := TreeView1.Items[I];
          end;
        end;
        TreeView1.Items.AddChild(vTreeNode,
          ADOQuery2.FieldByName('ccode').AsString + #32 +
          ADOQuery2.FieldByName('ccode_name').AsString);
        ADOQuery2.Next;
      end;   for I := 0 to TreeView1.Items.Count - 1 do
        TreeView1.Items[I].Text := StrRight(TreeView1.Items[I].Text, #32);end;
      

  2.   

    是根据数据库中的ccode的编码的第一个字符来决定建立在那个节点之下的...
      

  3.   

    这并不是很复杂啊,只要按cclass排下序就是啊,看来只有两层node,设置一个状态变量,如果Cclass改变就跳到上一层加上该cclass名目录,然后在该新目录名下加入节点。
      

  4.   

    找到规则,逐一添加。比如我觉得应该有个每层的编码,
    资产 1
    负债 5
    现金 101
    所得税 505
    xxx 10101
    yyy 50505
    等等,如此,你只要找到
    资产--现金--xxx
    负债--所得税--yyy
    这样树就出来了
    考虑到速度,可以在相关项目展开时候再添加
      

  5.   

    http://www.stoneking.cn/showlog.asp?cat_id=24&log_id=362
    昨天刚小弄的一个控件,有源码,