以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于计算量大卡死问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=172398)

--  作者:wangglby
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2021/10/11 9:42:00
--  
考虑使用最新的分级数据处理功能:http://www.foxtable.com/webhelp/topics/3368.htm
--  作者:wangglby
--  发布时间:2021/10/11 10:15:00
--  
这个哪个版本的,我的casestudy里面怎么没这个案例?19年版的能用这个功能吗,若这个功能不能用,有其他办法吗?
[此贴子已经被作者于2021/10/11 10:24:50编辑过]

--  作者:有点蓝
--  发布时间:2021/10/11 10:33:00
--  
需要安装这里的最新版才能使用:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=171144
--  作者:有点蓝
--  发布时间:2021/10/11 10:34:00
--  
如果无法使用最新版,回到1楼的问题。

代码是在“表A”的datacolchanged?

--  作者:wangglby
--  发布时间:2021/10/11 10:35:00
--  

--  作者:有点蓝
--  发布时间: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
--  发布时间:2021/10/11 10:43:00
--  
还有请问下,若不买新软件,可以付费升级吗?
--  作者:有点蓝
--  发布时间:2021/10/11 10:47:00
--  
之前购买的不超过5年可以付费升级。超过5年只能重新购买
--  作者:wangglby
--  发布时间:2021/10/11 10:53:00
--  
我用的加密狗提示2020/2/3以后的版本不能用,应该是17年2月买的,在5年内,这个加密狗是之前辞职的同事留下的,这样能升级吗?费用大约多少?