Foxtable(狐表)用户栏目专家坐堂 → [建议]加载树与筛选树合并


  共有2890人关注过本帖树形打印复制链接

主题:[建议]加载树与筛选树合并

帅哥哟,离线,有人找我吗?
涛声依旧5666
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:252 积分:2193 威望:0 精华:0 注册:2011/6/28 16:50:00
[建议]加载树与筛选树合并  发帖心情 Post By:2014/8/14 0:45:00 [只看该作者]

最近FoaxTable更新频繁,感觉它越来越强大了,激起我重回FoxTable进行开发的欲望。
在探索了加载树工作方式后,觉得有些问题值得狐友们大家来讨论。
问题现象是:当我们在加载树节点间来回双击时,对应的DataTable的记录就重复清空、加载。白白消耗了带宽资源。
以狐表提供的范例《动态加载演示》为例,

1、当双击PD01/CS01节点时,DataTables("订单")加载了4条记录,
2、接着双击PD01/CS02节点时,DataTables("订单")加载了13条记录。

     应该说,这个结果是正确的。

3、但当我们重新双击PD01/CS01节点时,DataTables("订单")重新加载了4条记录。

此时要商榷的议题来了:CS01的记录在第一次双击时已经加载,但由于我们的第二次双击,CS01的记录在DataTable中没有保存,

                               造成第三次双击时,又加载了一次(非常遗憾的是,此时又将CS02的数据抛弃了)。

这种现象,成了现实版的“黑熊掰玉米”。

 

为此,是否可以将加载树与筛选树结合,大致的意思是:每次在加载树的节点之间切换时,DataTable中的记录是逐渐增加的(加法效应),而在对应的Table中,利用其筛选的能力,只显示对应的记录(减法效应)。

还是以《动态加载演示》为例:

1、当双击PD01/CS01节点时,DataTables("订单")加载了4条记录,此时Tables("订单")中也是CS01的4条记录;

2、接着双击PD01/CS02节点时,DataTables("订单")加载了13条记录,总记录数为17条记录(4+13),但在Tables("订单")中显示的是CS02的13条记录;
3、再次双击PD01/CS01节点时,DataTables("订单")不必再加载记录,仍为17条记录,而在但在Tables("订单")中显示的是CS01的4条记录;

 

以上观点,谨抛砖引玉,愿FoxTable越来越好。

[此贴子已经被作者于2014-8-14 0:46:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4646 积分:33880 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/8/14 7:56:00 [只看该作者]

不是有“AppendLoad”吗

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/8/14 8:27:00 [只看该作者]

其实现在的筛选树和加载树,都可以不排除原来的数据的基础上显示新数据,你只需按住Ctrl键再单击节点即可。

参考:

http://www.foxtable.com/help/topics/2739.htm

http://www.foxtable.com/help/topics/2738.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/8/14 9:10:00 [只看该作者]

楼主只考虑了加载而没有考虑数据的更新,使用LOAD的意义一是为了减少加载量,而是为了获取最新数据。

以目前的带宽和主机性能来说,加载100条和1000条速度基本差不多,无需纠结。
如果按照你的思路,代码上比较繁琐,而且加载过后不会再加载,就再也得不到最新数据了,失去了load的意义。

 回到顶部
帅哥哟,离线,有人找我吗?
涛声依旧5666
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:252 积分:2193 威望:0 精华:0 注册:2011/6/28 16:50:00
  发帖心情 Post By:2014/8/14 9:47:00 [只看该作者]

现在不是加载100条or1000条的问题,是如何解决重复清除、重复加载的问题。

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/14 9:52:00 [只看该作者]

以下是引用涛声依旧5666在2014-8-14 9:47:00的发言:

现在不是加载100条or1000条的问题,是如何解决重复清除、重复加载的问题。

 

 

亲,请用AppendLoad

 

http://www.foxtable.com/help/topics/2276.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/14 9:55:00 [只看该作者]

 或者你最后的

 

DataTables("表A").LoadFilter = Filter

 

 改成

 

Filter = iif(DataTables("表A").LoadFilter > "", DataTables("表A").LoadFilter & " or " & filter, Filter)

DataTables("表A").LoadFilter = Filter


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/8/14 11:08:00 [只看该作者]

以下是引用涛声依旧5666在2014-8-14 9:47:00的发言:

现在不是加载100条or1000条的问题,是如何解决重复清除、重复加载的问题。

 

不看重点额,图片点击可在新窗口打开查看


如果按照你的思路,代码上比较繁琐,而且加载过后不会再加载,就再也得不到最新数据了,失去了load的意义。


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/14 11:19:00 [只看该作者]

追加加载、刷新加载,各有各的用处。

但加载树的重点,应该是“加载”数据,不是“刷新”数据,所以楼主的看法有道理。

在我的“通用平台”中,已经用灵活的追加加载,取代了加载树。

 

即使是刷新数据,根据数据量的大小,也要采用不同的方式:

数据量小,直接Load;数据量大,只刷新修改或新增的数据。


 回到顶部
帅哥哟,离线,有人找我吗?
涛声依旧5666
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:252 积分:2193 威望:0 精华:0 注册:2011/6/28 16:50:00
  发帖心情 Post By:2014/8/14 11:21:00 [只看该作者]

谢谢有点甜老师。追问一下,利用AppendLoad方法,能共享  .LoadTop、.LoadPage 等属性,实现分页加载吗?

 回到顶部
总数 11 1 2 下一页