以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于DataTables的疑问? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=30806) |
-- 作者:zmagood -- 发布时间:2013/4/3 23:17:00 -- 关于DataTables的疑问? 用DataTables("表A").Compute()统计后的数值,如果表A进行不同筛选后,却得到不同的值。 按帮助中所说:DataTable就像一个仓库,所有从数据文件中加载的数据,都存放在这里,而且这个仓库是不直接面对用户的,除了编程,用户没有办法直接对DataTable进行操作, 我在表B中的DataColChanged表事件写入代码算是编程吗? 我应该用什么办法,在B表中进行DataTables("表A").Compute()统计后的数值不受表A的筛选影响呢? 更正一下:不是筛选,是加载树后,得到的值不同。是否可以理解为设置加载树后,仓库里就不存在不满足条件的数据了呢? 如果是这样,就能理解了。 但是有什么办法,统计时不受加载树的影响呢?
[此贴子已经被作者于2013-4-3 23:35:07编辑过]
|
-- 作者:ahbzczy -- 发布时间:2013/4/3 23:58:00 -- 那就用sql语句,是直接从后台统计数据的
|
-- 作者:zmagood -- 发布时间:2013/4/3 23:59:00 -- 好像有点搞明白了,我的理解是: DataTable(仓库)加载的数据,可根据加载树所设置的条件进行加载,因此 DataTable 所指的是加载的数据,不是全部 数据文件 中的数据。不符合条件的数据不在仓库 DataTable 中,因此 DataTables("表A").Compute()统计结果所以会不同。但是用 筛选设置的条件,对统计结果没有影响。 例如:我们打开文件时,仓库 DataTable从数据文件中加载了所有表中所有的数据,但当我们进行加载树的条件设置,其实就是把仓库 DataTable中不符合条件的数据清除了。如重新加载所有数据,仓库 DataTable则又重新从数据文件中提取所有数据。
|
-- 作者:晕了快扶我 -- 发布时间: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也好,都是针对已经加载进来的数据才有用的 |
-- 作者:有点甜 -- 发布时间: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
|