Foxtable(狐表)用户栏目专家坐堂 → 关于计算量大卡死问题


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

主题:关于计算量大卡死问题

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


加好友 发短信
等级:童狐 帖子:284 积分:2624 威望:0 精华:0 注册:2020/2/25 23:12:00
关于计算量大卡死问题  发帖心情 Post By:2021/10/11 9:33:00 [只看该作者]

我的代码里有大约10组这种汇总的代码,很可能一次全部触发,数据量一大,大约30行左右,大约3-4个层级,就会卡死,请问怎么解决。

 

  If e.DataCol.Name = "净重" OrElse e.DataCol.Name ="数量"  OrElse e.DataCol.Name ="层级"   Then

        Dim wz As Integer

        For wz = 0 To Tables("表A").Rows.count-1

            Dim t1 As Table = Tables("表A")

            Dim a1 As String = t1.Rows(wz)("层级")&"."

            Dim a2 As Integer = t1.Rows(wz)("级别")+1

            If DataTables("表A").Compute("count(层级)","物料信息_层级 like '" & a1 & "%' and 级别= '" & a2 & "' ") > 0 Then   

                t1.Rows(wz)("净重")= DataTables("表A").compute("Sum(净重辅助)","层级 like '" & a1 & "%' and 级别= '" & a2 & "' ") 

            End If

        Next

    End If


图片点击可在新窗口打开查看此主题相关图片如下:捕获2312.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2021/10/11 9:33:19编辑过]

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


加好友 发短信
等级:超级版主 帖子:76067 积分:385907 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/11 9:42:00 [只看该作者]

考虑使用最新的分级数据处理功能:http://www.foxtable.com/webhelp/topics/3368.htm

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


加好友 发短信
等级:童狐 帖子:284 积分:2624 威望:0 精华:0 注册:2020/2/25 23:12:00
  发帖心情 Post By:2021/10/11 10:15:00 [只看该作者]

这个哪个版本的,我的casestudy里面怎么没这个案例?19年版的能用这个功能吗,若这个功能不能用,有其他办法吗?
[此贴子已经被作者于2021/10/11 10:24:50编辑过]

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


加好友 发短信
等级:超级版主 帖子:76067 积分:385907 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/11 10:33:00 [只看该作者]

需要安装这里的最新版才能使用:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=171144

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


加好友 发短信
等级:超级版主 帖子:76067 积分:385907 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/11 10:34:00 [只看该作者]

如果无法使用最新版,回到1楼的问题。

代码是在“表A”的datacolchanged?

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


加好友 发短信
等级:童狐 帖子:284 积分:2624 威望:0 精华:0 注册:2020/2/25 23:12:00
  发帖心情 Post By:2021/10/11 10:35:00 [只看该作者]


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


加好友 发短信
等级:超级版主 帖子:76067 积分:385907 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/11 10:41:00 [只看该作者]

那就没有必要遍历所有行了,多看看事件的帮助,理解一下事件的用法。上面一楼的代码更适合放到按钮里使用


If e.DataCol.Name = "净重辅助" OrElse e.DataCol.Name ="级别"  OrElse e.DataCol.Name ="层级"   Then

            Dim a1 As String = e.dataRow("层级") & "."

            Dim a2 As Integer = e.dataRow("级别")+1

            If e.DataTable.Compute("count(层级)","物料信息_层级 like '" & a1 & "%' and 级别= '" & a2 & "' ") > 0 Then   

                e.dataRow("净重")= e.DataTable.compute("Sum(净重辅助)","层级 like '" & a1 & "%' and 级别= '" & a2 & "' ") 

            End If

        Next

    End If


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


加好友 发短信
等级:童狐 帖子:284 积分:2624 威望:0 精华:0 注册:2020/2/25 23:12:00
  发帖心情 Post By:2021/10/11 10:43:00 [只看该作者]

还有请问下,若不买新软件,可以付费升级吗?

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


加好友 发短信
等级:超级版主 帖子:76067 积分:385907 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/11 10:47:00 [只看该作者]

之前购买的不超过5年可以付费升级。超过5年只能重新购买

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


加好友 发短信
等级:童狐 帖子:284 积分:2624 威望:0 精华:0 注册:2020/2/25 23:12:00
  发帖心情 Post By:2021/10/11 10:53:00 [只看该作者]

我用的加密狗提示2020/2/3以后的版本不能用,应该是17年2月买的,在5年内,这个加密狗是之前辞职的同事留下的,这样能升级吗?费用大约多少?

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