当前位置:主页>仓库管理软件> 列表

Treeview+数据库显示 找最好的家庭记账软件

记账软件版1楼: 请问高手们:
我现在想做一个Treeview加载数据库内容的程序!
数据库中有两个字段(departid(varchar),departname(varchar));
我在加载到Treeview中时怎么才能实现多重结构啊?
如我现在有几条记录:
A 最高部门
A01 上级部门
A0101 中级部门
A010101 中下级部门
......
加载上来应该为:
最高部门
| ---上级部门
| ---中级部门
| ---中下级部门
| ---.....
我现在以departid为准则进行加载我要如何写才能实现呢?当然每个节点还要带数据~
请原源提示?谢谢!在线等待!

2楼: 大家给个相应的例子也可以啊!!谢谢了! 如库存软件下载

3楼: 高手们教教偶啊!如果觉得分数不够解决会再加!!偶全部都给!!真是急啊!!9999999999999
在VB中有一个:
Treeview1.Nodes.Add Left(Trim(rsDepart.Fields("departID")), Len(Trim(rsDepart.Fields("departID"))) - 2), tvwChild, Trim(rsDepart.Fields("departID")), Trim(rsDepart.Fields("departName")), 1, 2好像可以实现我的要求,但是在Delphi中好像没有相对应的啊!
高手们指点指点啊!!...................

4楼: 这种用dxDBTreeView控件最容易实现,设置一下ParentField就搞定了

5楼: dxDBTreeView是Delphi自带的控件???还是第三方控件没用过@!

6楼: 是三方控件DevExpress DBTree Suite
如果不想写代码就用这个控件吧。

记账软件版7楼: 如果不用第三方控件代码如何实现呢?
请兄弟指点指点!

8楼: 给你段代码参考一下吧:
const
ID_DEPT = 2; //节点步长(相邻两层节点 ID 的长度差)
var
nLevel: Integer;
ptnNodes: array of TTreeNode; //缓存的节点指针,SizeOf(TTreeNode) = 4
lpID, lpName: string;
begin
nLevel := 0;
ADODataSet1.CommandText := ''SELECT [id], [name] FROM [table1] ORDER BY [id]'';
ADODataSet1.Open;
SetLength(ptnNodes, ADODataSet1.Recordset.RecordCount + 1);
ptnNodes[nLevel] := nil;
with ADODataSet1.Recordset do
while not Eof do
begin
lpID := Fields[''id''].Value;
lpName := Fields[''name''].Value;
nLevel := Length(lpID) div ID_DEPT;
ptnNodes[nLevel] := TreeView1.Items.AddChild(ptnNodes[nLevel - 1], lpName);
MoveNext;
end;
end;

9楼: 明白你的意思了!谢谢!我试试先

10楼: 不好意思,借此地再问个问题:
兄弟们问个问题!
我有个应用程序;昨天还好好的,但是今天却遇到个不明白的问题!就是我在对窗体进行更改后运行怎么也看不到我做的更改的程序!好像应用程序没有给我加载我的更改一样!如我在应用程序中加载一下窗体但是运行时出现:
Project Possystem.exe raised exception class EResNotFound With message ''Resource TposAllQuery not found''.process stopped.use step or run to continue
这是怎么回事,是不是哪里设置有问题:
哪个兄弟以前有没有遇到过同样的问题啊?请帮我看看!急啊!

11楼: 递归算法

12楼: 我认为数据库设计很重要,你的两个字段在设计上不如变为四个字段
分别为:
Code : 代码
Name : 名称
ParentCode : 父代码
ParnetName : 父名称
这样你用TreeView时很容易就实现你说的树型
每次提取数据时使用以下的SQL语句即可:
Select * from 表名 where (ParentCode=''条件'')
然后再生成到树结点, 这样一直循环完即可 如最好的家庭记账软件