Foxtable(狐表)用户栏目专家坐堂 → 关于DataTables的疑问?


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

主题:关于DataTables的疑问?

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


加好友 发短信
等级:幼狐 帖子:72 积分:724 威望:0 精华:0 注册:2013/3/27 13:32:00
关于DataTables的疑问?  发帖心情 Post By:2013/4/3 23:17:00 [只看该作者]

用DataTables("表A").Compute()统计后的数值,如果表A进行不同筛选后,却得到不同的值。
按帮助中所说:DataTable就像一个仓库,所有从数据文件中加载的数据,都存放在这里,而且这个仓库是不直接面对用户的,除了编程,用户没有办法直接对DataTable进行操作,
我在表B中的DataColChanged表事件写入代码算是编程吗?
我应该用什么办法,在B表中进行DataTables("表A").Compute()统计后的数值不受表A的筛选影响呢?


更正一下:不是筛选,是加载树后,得到的值不同。是否可以理解为设置加载树后,仓库里就不存在不满足条件的数据了呢?
如果是这样,就能理解了。
但是有什么办法,统计时不受加载树的影响呢?
[此贴子已经被作者于2013-4-3 23:35:07编辑过]

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


加好友 发短信
等级:童狐 帖子:268 积分:2307 威望:0 精华:0 注册:2010/3/26 14:08:00
  发帖心情 Post By:2013/4/3 23:58:00 [只看该作者]

那就用sql语句,是直接从后台统计数据的

 


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


加好友 发短信
等级:幼狐 帖子:72 积分:724 威望:0 精华:0 注册:2013/3/27 13:32:00
  发帖心情 Post By:2013/4/3 23:59:00 [只看该作者]

好像有点搞明白了,我的理解是: DataTable(仓库)加载的数据,可根据加载树所设置的条件进行加载,因此 DataTable 所指的是加载的数据,不是全部 数据文件 中的数据。不符合条件的数据不在仓库 DataTable 中,因此 DataTables("表A").Compute()统计结果所以会不同。但是用 筛选设置的条件,对统计结果没有影响。
例如:我们打开文件时,仓库 DataTable从数据文件中加载了所有表中所有的数据,但当我们进行加载树的条件设置,其实就是把仓库 DataTable中不符合条件的数据清除了。如重新加载所有数据,仓库 DataTable则又重新从数据文件中提取所有数据。

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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/4/4 10:21:00 [只看该作者]

以下是引用zmagood在2013-4-3 23:59:00的发言:
好像有点搞明白了,我的理解是: DataTable(仓库)加载的数据,可根据加载树所设置的条件进行加载,因此 DataTable 所指的是加载的数据,不是全部 数据文件 中的数据。不符合条件的数据不在仓库 DataTable 中,因此 DataTables("表A").Compute()统计结果所以会不同。但是用 筛选设置的条件,对统计结果没有影响。
例如:我们打开文件时,仓库 DataTable从数据文件中加载了所有表中所有的数据,但当我们进行加载树的条件设置,其实就是把仓库 DataTable中不符合条件的数据清除了。如重新加载所有数据,仓库 DataTable则又重新从数据文件中提取所有数据。

简单一句话,FOX里的DATATABLES也好,TABLES也好,都是针对已经加载进来的数据才有用的


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


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

其实Table也有一个Compute方法,例如:

 

Tables("表A").Compute(...)

 

这样就是统计筛选后的数据。

 

实际上即使Table没有Compute方法,你用DataTable的Compute的,一样可以统计筛选收的数据?:

 

DataTables("表A").Compute(...,Tables("表A").Filter)

 

建议看看:

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

 

 

 

 


 回到顶部