以文本方式查看主题

-  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