Foxtable(狐表)用户栏目专家坐堂 → 程序正常执行,但显示代码执行出错(集合已修改,可能无法执行枚举操作)


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

主题:程序正常执行,但显示代码执行出错(集合已修改,可能无法执行枚举操作)

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


加好友 发短信
等级:幼狐 帖子:105 积分:1193 威望:0 精华:0 注册:2017/6/10 10:52:00
程序正常执行,但显示代码执行出错(集合已修改,可能无法执行枚举操作)  发帖心情 Post By:2022/12/27 6:16:00 [只看该作者]

程序可以正常执行,但是在命令窗口下显示代码执行出错,集合已修改,可能无法执行枚举操作
代码如下:
Dim g As New CrossTableBuilder("统计表1", DataTables("d"), "[更新时间] >= '12-31-2022'")
g.HGroups.AddDef("更新时间", DateGroupEnum.Hour, "时")
g.VGroups.AddDef("更新时间", DateGroupEnum.Year)
g.VGroups.AddDef("更新时间")
g.VGroups.AddDef("更新时间", DateGroupEnum.Day)
g.Totals.AddDef("净重", "净重")
g.Filter = "[更新时间] >= '12-31-2022'"
g.FromServer = True
g.Build()
MainTable = Tables("统计表1")

Dim sr, s As String
Dim dt As Date
For Each dc As DataCol In DataTables("统计表1").DataCols '遍历所有列
    If dc.Caption <> "时" Then
        sr = dc.Caption
        s = sr.Replace("_", "/") '将123替换为789
        If IsDate(s) Then
            dt = CDate(s)
            If dt = Date.Today.AddDays( - 3) Then
                DataTables("统计表1").DataCols.Add("3日前", GetType(Double), dc.name) '增加名为“吨”的列  
                Output.Show("正确,3日前  " & dc.Name & "    ----    " & dc.Caption & " ... " & dt)
            End If 
        End If
    End If 
Next

应该是上面标颜色的代码有问题


图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图20230103060340.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/27 9:07:00 [只看该作者]

For Each循环列的时候又有代码增加了列,也就是被循环的集合发生了变化就会有这个提示。这种情况改为【For i As Integer = 1】这种循环即可

Dim sr, s As String
Dim dt As Date
For i as integer = 0 to DataTables("统计表1").DataCols.count - 1 '遍历所有列
dim dc as datacol = DataTables("统计表1").DataCols(i)
    If dc.Caption <> "时" Then

 回到顶部