我的数据表的结构及字段如下: a1 a2 a3
...
应付股利
应交税金 应交增值税 进项税额
应交税金 应交增值税 已交税金
应交税金 应交营业税
应交税金 应交消费税
....在树中应这样表示: 应付股利
应交税金
应交增值税
进项税额
已交税金
应交营业税
应交消费税 两层的我已做出,三层的怎么也做不出来了.
两层的代码如下:procedure Tkemugl_w.tree_fzl_Refresh;
var
MyTreeNode:Ttreenode;
jl1,jl2,jl3,km_last,km_last2,km_next,yjkm,ejkm:string;
i:integer;
begin
ADOQuery1.Close;
ADOQuery1.sql.Clear;
ADOQuery1.sql.Add('select * from kemuku where type=''负债类'' order by yjkm_bianma,ejkm_bianma');
ADOQuery1.Open;
TreeView2.Items.Clear;
i:=0;
km_last:='QQ';//对上个科目编号进行赋值;
while not ADOQuery1.Eof do
begin
yjkm:=ADOQuery1.fieldbyname('yjkm_bianma').asstring;
ejkm:=ADOQuery1.fieldbyname('ejkm_bianma').asstring;
jl1:=ADOQuery1.fieldbyname('yjkm_bianma').asstring+ADOQuery1.fieldbyname('yjkm_name').asstring;
jl2:=ADOQuery1.fieldbyname('ejkm_bianma').asstring+ADOQuery1.fieldbyname('ejkm_name').asstring;
//如果当前的科目编号<>上级科目编号,在树的根目录添加一节点;
if yjkm<>km_last then
begin
TreeView2.Items.Add(nil,jl1);
MyTreeNode := TreeView2.Items[i];
i:=i+1;
end;
//如果当前的记录的二级科目还有值,那么在节点的下方增加一支节点;
if not ADOQuery1.fieldbyname('ejkm_bianma').IsNull then
begin
TreeView2.Items.AddChild(MyTreeNode,jl2);
i:=i+1;
end; //对上个科目编号进行赋值;
km_last:=yjkm; ADOQuery1.Next;
end;
end;
...
应付股利
应交税金 应交增值税 进项税额
应交税金 应交增值税 已交税金
应交税金 应交营业税
应交税金 应交消费税
....在树中应这样表示: 应付股利
应交税金
应交增值税
进项税额
已交税金
应交营业税
应交消费税 两层的我已做出,三层的怎么也做不出来了.
两层的代码如下:procedure Tkemugl_w.tree_fzl_Refresh;
var
MyTreeNode:Ttreenode;
jl1,jl2,jl3,km_last,km_last2,km_next,yjkm,ejkm:string;
i:integer;
begin
ADOQuery1.Close;
ADOQuery1.sql.Clear;
ADOQuery1.sql.Add('select * from kemuku where type=''负债类'' order by yjkm_bianma,ejkm_bianma');
ADOQuery1.Open;
TreeView2.Items.Clear;
i:=0;
km_last:='QQ';//对上个科目编号进行赋值;
while not ADOQuery1.Eof do
begin
yjkm:=ADOQuery1.fieldbyname('yjkm_bianma').asstring;
ejkm:=ADOQuery1.fieldbyname('ejkm_bianma').asstring;
jl1:=ADOQuery1.fieldbyname('yjkm_bianma').asstring+ADOQuery1.fieldbyname('yjkm_name').asstring;
jl2:=ADOQuery1.fieldbyname('ejkm_bianma').asstring+ADOQuery1.fieldbyname('ejkm_name').asstring;
//如果当前的科目编号<>上级科目编号,在树的根目录添加一节点;
if yjkm<>km_last then
begin
TreeView2.Items.Add(nil,jl1);
MyTreeNode := TreeView2.Items[i];
i:=i+1;
end;
//如果当前的记录的二级科目还有值,那么在节点的下方增加一支节点;
if not ADOQuery1.fieldbyname('ejkm_bianma').IsNull then
begin
TreeView2.Items.AddChild(MyTreeNode,jl2);
i:=i+1;
end; //对上个科目编号进行赋值;
km_last:=yjkm; ADOQuery1.Next;
end;
end;
解决方案 »
- 《Delphi精要》谁愿意转让的,请联系我。
- delphi7安装GridPanel控件
- 使用Indy的IdTCPClient.Connect循环多次连接某些主站,会出现thread creation error,请高手帮忙。
- 问大家一个释放资源的问题?
- 如何关于判断整型数是否为空?
- 紧急求救!关于midas的问题.
- 各位高手,谁能教俺如何使用ADO的Resync阿!!!
- 怎样用窗体做参数
- MsSQL与MySQL有何区别?DELPHI应选择哪种作数据库?
- DELPHI中该如何调用windows系统图标
- 开机后只运行自己做的程序,有些什么办法?
- 开发三层系统,应用服务器使用COM,CORBA中的哪种技术比较好呢?
表:
flag name FID
0 百货
1 洗涤类 0
2 食品类 0
3 膨化食品 2
4 方便面类 2
5 儿童类 3
6 干脆类 5
7 爽口类 5
方法是:某记录的FID等于表中另一记录的FLAG值,则说明该记录是另一记录的子节点。