度量快速开发平台-专业、快速的软件定制快开平台

标题: 树型部件分层加载数据实现思路,提高速度,提高效率 [打印本页]

作者: 王爱东    时间: 2020-3-11 17:53
标题: 树型部件分层加载数据实现思路,提高速度,提高效率

我们知道,树型部件中可以以树型展示数据出来。例如我们把组织机构展示出来,可以写业务表:
select  dept_id,dept_name,upper_id from sa_dept_dict
然后再设置树型关键列未 dept_id,上级列未upper_id。这样就出来了一个树型的数据。

这样在一般业务中是没有问题的,如果我们设想一下sa_dept_dict表中有成千上万条数据,这样直接一下全部读出来形成一棵树,效率可能就很慢。那如何来解决较好呢。

我们知道因为树型是可以一个一个节点展开的,那就可以先默认加载第一级的数据出来,然后点击第一级的某一个值,再把该值的第二级加载出来,这样点某一个就只加载某一个的直接下级,数据量一下就少很多了,效率提高就非常明显。

例如:开始打开树型的时候,只查询第一层的数据出来。

select  dept_id,dept_name,upper_id from sa_dept_dict where  upper_id =0

然后,在树型部件的“数据行双击事件”中,再写以下代码。


dim dt=树型部件1.DataTable

if 树型部件1.TreeList.FocusedNode.Nodes.Count=0 then
    '加载选择节点的子数据。并填写到树型部件中,实现分层加载数据。
    dim dt1=executeSelect("select dept_id,dept_name,upper_id from sa_dept_dict where upper_id="&树型部件1.GetFocusedNodeValue("DEPT_ID"))
   for each dr in dt1.Rows
      dt.Rows.Add(dr.ItemArray)
    next
end if


这样就实现了分层加载数据,大家可以试试,数据量越大,效果越明显。比如总共上万条数据后,分层加载数据就非常有必要。


作者: 王爱东    时间: 2020-3-11 17:54
大家都自行测试下,掌握此用法。
作者: 王爱东    时间: 2020-3-11 18:20
构建熟悉后,就要考虑构建中的效率问题了。
作者: 万望    时间: 2020-3-11 23:05
涨姿势了
作者: 万望    时间: 2020-3-11 23:06
还能这么整啊??( ^_^ )不错嘛
作者: 万望    时间: 2020-5-12 23:24
如果有图那么看着会更加直观些
作者: 万望    时间: 2020-6-21 15:53
这么写还是有弊端啊,无法体现选择行是否存在子项,不直观,必须要每个都点击才清楚呢




欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2