以文本方式查看主题

-  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=107866)

--  作者:ltty5200
--  发布时间:2017/10/11 16:16:00
--  [求助]执行统计程序闪退,求老师指教
我的表结构如下图,附件也上传了。
我在datacolchanged事件中执行代码,程序会闪退,麻烦老师指教下:
代码如下:
Select Case e.DataCol.name
    Case "今年计划_1月"
        Dim dr As DataRow
        dr = DataTables("直营事业部新开店铺计划").Find("业态 = \'合计\' And 属性 = \'店铺数\'")
        If dr IsNot Nothing Then \'如果找到的话
            dr("今年计划_1月") = Tables("直营事业部新开店铺计划").Compute("sum(今年计划_1月)","属性 = \'店铺数\'")
        End If
End Select
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:合计测试.zip


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171011160651.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2017/10/11 16:23:00
--  
Select Case e.DataCol.name
    Case "今年计划_1月"
        Dim dr As DataRow
        dr = DataTables("直营事业部新开店铺计划").Find("业态 = \'合计\' And 属性 = \'店铺数\'")
        systemready = False
        If dr IsNot Nothing Then \'如果找到的话
            dr("今年计划_1月") = Tables("直营事业部新开店铺计划").Compute("sum(今年计划_1月)","属性 = \'店铺数\' and 业态 <> \'合计\'")
        End If
        systemready = True
End Select

--  作者:ltty5200
--  发布时间:2017/10/11 16:50:00
--  回复:(有点甜)Select Case e.DataCol.name &n...
谢谢老师,能解释一下我那个问题是出在哪里吗?还有你发的systemready 是什么意思?不然有问题老是来麻烦老师很不好意思。
--  作者:有点甜
--  发布时间:2017/10/11 16:55:00
--  

systemReady 是为了防止重复触发 DataColChanged 事件

 

http://www.foxtable.com/webhelp/scr/2218.htm

 

同时你统计条件不正确,这样会导致你不断触发 DataColChanged 事件,因为你每次合计的值都不同

 

dr("今年计划_1月") = Tables("直营事业部新开店铺计划").Compute("sum(今年计划_1月)","属性 = \'店铺数\' and 业态 <> \'合计\'")


--  作者:ltty5200
--  发布时间:2017/10/11 17:23:00
--  回复:(有点甜)systemReady 是为了防止重复触发 Dat...
好的,谢谢老师耐心指点,受教了图片点击可在新窗口打开查看