我在一个做的软件中,有一个对象列表要用TreeView显示,要用到7个关联表,可是用一般加载方法速度很慢,有没有好的方法可以快一点。大家帮忙指点一下。
表1。 MID, MName, 其它字段。
表2。 MID, BID, BName, 其它字段。
表3。 BID, CID, BName, DID, DName,其它字段。
表4。 PID, PName, BCount, 其它字段 .
表5。 PID, BID,其它字段。
用TreeView 加载出来应该是下面这样的。其中MID,BID, CID, DID 是一个物理对象,而PID是一个逻辑上的对象,用于逻辑上的管理MID,BID,CID,DI等对象。MID包含BID,BID又包含CID,CID又包DID,其中为节省空间就把CID和DID写在一个表里了。软件名字
|
|------MNames(就是MID的集合)
| |
| |--MID_1
| | |_____BNames(就是BID的集合)
| | |
| | |__BID_1
| | | |
| | | |___CNames(就是CID的集合)
| | | |
| | | |___CID_1
| | | | |
| | | | |____DNames(就是DID的集合)
| | | | |
| | | | |__DID_1
| | | | |__其它的DID ,同上
| | | |___其它的CID,同上
| | |____其它的BID,同上
| |__其它的MID,同上
|
|
|_____PNames(就是PID的集合)
|
|____PID_1
| |
| |___某个MID(层次和上面的一样,但可以只包括层次的一部分)
| |
| |___其它包括的MID,同上
|
|__其它的PID 麻烦大家想一想。分不够可以再加。
表1。 MID, MName, 其它字段。
表2。 MID, BID, BName, 其它字段。
表3。 BID, CID, BName, DID, DName,其它字段。
表4。 PID, PName, BCount, 其它字段 .
表5。 PID, BID,其它字段。
用TreeView 加载出来应该是下面这样的。其中MID,BID, CID, DID 是一个物理对象,而PID是一个逻辑上的对象,用于逻辑上的管理MID,BID,CID,DI等对象。MID包含BID,BID又包含CID,CID又包DID,其中为节省空间就把CID和DID写在一个表里了。软件名字
|
|------MNames(就是MID的集合)
| |
| |--MID_1
| | |_____BNames(就是BID的集合)
| | |
| | |__BID_1
| | | |
| | | |___CNames(就是CID的集合)
| | | |
| | | |___CID_1
| | | | |
| | | | |____DNames(就是DID的集合)
| | | | |
| | | | |__DID_1
| | | | |__其它的DID ,同上
| | | |___其它的CID,同上
| | |____其它的BID,同上
| |__其它的MID,同上
|
|
|_____PNames(就是PID的集合)
|
|____PID_1
| |
| |___某个MID(层次和上面的一样,但可以只包括层次的一部分)
| |
| |___其它包括的MID,同上
|
|__其它的PID 麻烦大家想一想。分不够可以再加。
解决方案 »
- delphi 如何调用windows系统颜色板
- FastReport 是否能以两个条件作为分组条件?
- fsScript的用法?
- 高分求助~是delphi2005 bug吗?
- 那位用过wwDBGrid帮我看看:wwDBGrid中对每一列可以设置其显示方式如某一列显示类型为CheckBox可是我在程序中动态怎么设置(所显示列为bo
- application.Terminate; 和直接close有什么区别
- 消息问题:由CreateWindow所画的按钮,单击事件如何响应。(不是在本窗体中)
- 高手的前进道路
- TDBLookupCombox怎么设置默认值?
- 如何修改cxgrid一个单元格内的数据
- dbgrideditbuttonclick事件問題
- 请大家留下QQ联系,多交流DELPHI思想。加我的送一套大商场管理系统源代码?
可以加个进度条嘛实在不行就写程序动态加载点到某个节点再load数据,不过数据最好先读到DataSet里,不然说不定更慢
关键我这个本来就是动太加载的。
数据量虽然不是很大,但也要处理得比较好才能使整个程序的性能良好呀。
beginupdate
....
....
....
endupdate
在生成每个节点的时候,只要不是最后的子节点,都在节点先加一个节点,在单击该节点时删除加的子节点,再生成多个子节点。速度快多了。如:
1:生成一级节点时,加一个子节点“请稍后”。
|
|------MNames(就是MID的集合)
|
| |--请稍后
|_____PNames(就是PID的集合) | |--请稍后
2:单击节点“MNames(就是MID的集合)”时,删除子节点“请稍后”,查询子数据集,有数据,则加子节点;|------MNames(就是MID的集合)
|
| |--MID_1
| | |_____请稍后
|_____PNames(就是PID的集合) | |--请稍后
3:单击每个节点都如此,速度就快多了。