以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  2018-07-26版后台统计问题(紧急问题)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122367)

--  作者:xiaoqiwei
--  发布时间:2018/7/24 1:50:00
--  2018-07-26版后台统计问题(紧急问题)
操作步骤1:

DataTables("表名").LoadTop = "100 Percent"
DataTables("表名").LoadOrder = ""
DataTables("表名").LoadFilter = "_Identify is null"  \'不加载表任何数据
DataTables("表名").Load()

Dim g As New CrossTableBuilder("统计1", DataTables("表名"))
g.HGroups.AddDef("日期", DateGroupEnum.None)
g.VGroups.AddDef("部门")
g.Totals.AddDef("金额")
g.Decimals = 2
g.FromServer = True  \'直接后台统计
g.Build()
MainTable = Tables("统计1")

得出结果:统计不出任何数据。

操作步骤2:

DataTables("表名").LoadTop = "100 Percent"
DataTables("表名").LoadOrder = ""
DataTables("表名").LoadFilter = ""  \'加载表所有数据
DataTables("表名").Load()

Dim g As New CrossTableBuilder("统计1", DataTables("表名"))
g.HGroups.AddDef("日期", DateGroupEnum.None)
g.VGroups.AddDef("部门")
g.Totals.AddDef("金额")
g.Decimals = 2
g.FromServer = True  \'直接后台统计
g.Build()
MainTable = Tables("统计1")

得出结果:统计出数据。

数据源用的是传统SQL外部数据源

也就是说 2018-07-26版 直接后台统计 是否存在无效的问题?
[此贴子已经被作者于2018/7/25 0:14:00编辑过]

--  作者:狐狸爸爸
--  发布时间:2018/7/24 8:00:00
--  
我测试没有问题
--  作者:有点甜
--  发布时间:2018/7/24 9:15:00
--  
我测试页没有问题。
--  作者:xiaoqiwei
--  发布时间:2018/7/24 10:43:00
--  
我卸载重装还是不行,我直接 在数据统计-交叉统计 执行还是没有数据出来
--  作者:有点甜
--  发布时间:2018/7/24 11:30:00
--  
以下是引用xiaoqiwei在2018/7/24 10:43:00的发言:
我卸载重装还是不行,我直接 在数据统计-交叉统计 执行还是没有数据出来

 

重新测试一次,使用你给的代码,同样没问题。


--  作者:xiaoqiwei
--  发布时间:2018/7/24 11:47:00
--  
以下是引用有点甜在2018/7/24 11:30:00的发言:

 

重新测试一次,使用你给的代码,同样没问题。

找到问题所在:屏蔽了AfterOpenProject 事件里的代码,统计正常,正在执行逐个逻辑代码屏蔽测试


--  作者:xiaoqiwei
--  发布时间:2018/7/24 12:12:00
--  
原因找到:窗口表显示方式用的是分页加载数据。只要执行过分页加载数据后,再去操作直接后台统计(分组或交叉统计)都没数据出来。

操作步骤

1、执行过窗口中的分页加载数据代码(默认加载条件当天数据,由于当天没有数据(历史数据是有的)所以没有加载任何数据进来,Datatable当前是没有数据的),再
在 日常工作-数据统计-交叉统计(勾选了直接后台统计,筛选条件为空)统计不出数据来。

窗口的 AfterLoad 事件代码如下:


With DataTables("ddgl")
    .LoadFilter = "rq = \'" & date.today & "\'"
            .LoadPage = 0 \'加载第一页
            .LoadTop = 30
            .LoadOver = "lsh"
            .LoadReverse = True
    .Load()
End With

2、屏蔽了窗口中的 AfterLoad 事件分页加载数据 代码后,退出项目,删除bin文件夹,重新打开程序(默认不加载任何数据)。
再在 日常工作-数据统计-交叉统计(勾选了直接后台统计,筛选条件为空)统计数据出来了。


在2018-03-09版没有这个问题存在的
[此贴子已经被作者于2018/7/24 12:17:35编辑过]

--  作者:狐狸爸爸
--  发布时间:2018/7/24 12:35:00
--  
不是bug。
目前的处理方式,更符合习惯。
至于楼主的问题,解决起来很简单,统计前将loadtop设置为"",统计后恢复loadtop设置
[此贴子已经被作者于2018/7/24 12:38:02编辑过]

--  作者:km007
--  发布时间:2018/7/24 12:58:00
--  
那岂不是全部统计都要修改?
[此贴子已经被作者于2018/7/24 12:58:55编辑过]

--  作者:xiaoqiwei
--  发布时间:2018/7/24 13:14:00
--  
狐爸,这样的话,会对原项目相对有一定的影响的,因为用到直接后台统计的地方比较多,而且用到的项目也比较多,这样处理起来的工作量很大的,而且有些项目还不一定记得那里用到了,还要去查找等……