Foxtable(狐表)用户栏目专家坐堂 → 集合已修改,可能无法执行枚举操作


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

主题:集合已修改,可能无法执行枚举操作

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
集合已修改,可能无法执行枚举操作  发帖心情 Post By:2016/12/10 14:43:00 [只看该作者]

提示错误:集合已修改,可能无法执行枚举操作。

我看了之前同样问题的帖子,还是没有解决。。。不知道哪错了。。。

 

Dim r As Row
Dim r1 As Row

For i As Integer = 0 To  200
    r =  Tables(e.Form.Name & "_table1").Rows(i,True)
        r("折扣_本期") = r("销售金额_本期") / r("吊牌金额_本期")

        For i1 As Integer = 0 To  200
            r1 =  Tables(e.Form.Name & "_table1").Rows(i1,True)
            If r1("年份") = r("年份")+1  And r1("周次") = r("周次") And r1("门店") = r("门店")   Then
                r1("销售金额_去年同期") = r("销售金额_本期")
                r1("折扣_去年同期") = r("折扣_本期")
                r1("小piao数_去年同期") = r("小piao数_本期")
                r1("销售数量_去年同期") = r("销售数量_本期")
            End If


            If r1("年份") = r("年份")  And r1("周次") = r("周次")+1 And r1("门店") = r("门店")   Then
                r1("销售金额_今年上期") = r("销售金额_本期")
                r1("VIP销售金额_今年上期") = r("VIP销售金额_本期")
            End If
        Next
'
        r("销售金额_同比") = (r("销售金额_本期") - r("销售金额_去年同期"))/r("销售金额_去年同期")
        r("销售金额_环比") = (r("销售金额_本期") - r("销售金额_今年上期"))/r("销售金额_今年上期")
        r("连带率_本期") = r("销售数量_本期") / r("小piao数_本期")
        r("连带率_去年同期") = r("销售数量_去年同期") / r("小piao数_去年同期")
        r("物单价_本期") = r("销售金额_本期") / r("销售数量_本期")
        r("物单价_去年同期") = r("销售金额_去年同期") / r("销售数量_去年同期")
        r("VIP销售金额_环比") = (r("VIP销售金额_本期") - r("VIP销售金额_今年上期"))/r("VIP销售金额_今年上期")
        r("VIP销售金额_贡献率") = r("VIP销售金额_本期") / r("销售金额_本期")
        r("销售金额_与目标差额") = r("销售金额_本期") - r("销售金额_周目标")
        r("销售金额_周达成率") = r("销售金额_本期") / r("销售金额_周目标")
    Next


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/12/10 14:57:00 [只看该作者]

貌似问题不在这里。


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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/10 15:02:00 [只看该作者]

这个事件还有没有其它代码?

没看懂你的逻辑,这是要做什么?

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/12/10 15:18:00 [只看该作者]

 If DataTables(e.Form.Name & "_table1").DataCols.Contains("销售金额_去年同期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("销售金额_今年上期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("销售金额_同比") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("销售金额_环比") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("折扣_本期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("折扣_去年同期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("小piao数_去年同期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("连带率_本期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("连带率_去年同期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("物单价_本期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("物单价_去年同期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("VIP销售金额_今年上期") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("VIP销售金额_环比") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("VIP销售金额_贡献率") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("销售金额_与目标差额") = False Or _
       DataTables(e.Form.Name & "_table1").DataCols.Contains("销售金额_周达成率") = False  Then

            DataTables(e.Form.Name & "_table1").DataCols.Add("销售金额_去年同期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("销售金额_今年上期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("销售金额_同比", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("销售金额_环比", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("折扣_本期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("折扣_去年同期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("小piao数_去年同期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("销售数量_去年同期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("连带率_本期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("连带率_去年同期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("物单价_本期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("物单价_去年同期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("VIP销售金额_今年上期", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("VIP销售金额_环比", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("VIP销售金额_贡献率", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("销售金额_与目标差额", Gettype(Double))
            DataTables(e.Form.Name & "_table1").DataCols.Add("销售金额_周达成率", Gettype(Double))
    End If

 

问题在之前的增加列的代码,上面的已经可以。

但是感觉还是繁琐,

统计表后增加列,有没有简便的办法。

[此贴子已经被作者于2016/12/10 15:17:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/10 15:31:00 [只看该作者]

没有其它简便,相反,可能还要更复杂,上面的代码是有问题的,只能逐个列的判断。如

Dim dcols = DataTables("表A").DataCols
If dcols.Contains("销售金额_去年同期") = False Then dcols.Add("销售金额_去年同期", Gettype(Double))
If dcols.Contains("销售金额_今年上期") = False Then dcols.Add("销售金额_今年上期", Gettype(Double))
......

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/10 15:32:00 [只看该作者]

如果是统计表,就没有必要判断了,在生成统计表后直接添加列即可

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/12/10 15:48:00 [只看该作者]

ok,谢谢!!
[此贴子已经被作者于2016/12/10 15:48:06编辑过]

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


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2016/12/10 22:50:00 [只看该作者]

Dim dcols = DataTables("表A").DataCols
dim Dim cols() As String = {"col1","col2","cols","col4"}
for each c as string in cols
    If dcols.Contains(c) = False Then dcols.Add(c, Gettype(Double))
next
[此贴子已经被作者于2016/12/10 22:50:55编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/12/15 16:03:00 [只看该作者]

哇!谢谢!!


 回到顶部