Foxtable(狐表)用户栏目专家坐堂 → [求助]for each 遍历选择时出错


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

主题:[求助]for each 遍历选择时出错

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


加好友 发短信
等级:童狐 帖子:279 积分:3104 威望:0 精华:0 注册:2019/7/19 15:14:00
[求助]for each 遍历选择时出错  发帖心情 Post By:2022/2/5 15:45:00 [只看该作者]

CheckBox控件的 CheckedChanged 事件里写了一个循环选择代码,当有作废的记录时,跳过不选,实际运行中,第一条作废记录无论是不是已作废的记录都会被选中;另外还发现,被选中的这一条与 CheckBox控件 有了莫名的联系,点销这条记录的 “选择” 列的 选中状态,CheckBox控件的 选中状态 也会跟着变化,其他行记录点击“选择列”的状态时CheckBox控件不会有变化;
“选择” 列是 临时的逻辑列;

Dim tb As Table = Tables("采购合同_Table2")
Dim s As Integer '记录作废记录数
If tb.Rows.Count > 0 Then '如果子表中有数据
    If e.Sender.Checked = True Then '如果选中
        For Each a As Row In tb.Rows
            If a("作废") = False Then '如果未作废
                a("选择") = True
            Else '如果作废了
                s += 1 '记录作废数
            End If
        Next
        If s > 0 Then
            MessageBox.Show("有未选中的已作废的记录共: " & s & " 条!")
        End If
    Else '是非选中状态
        For Each a As Row In tb.Rows
            a("选择") = False '取消选择
        Next
    End If
Else '如果子表没有记录
    e.Sender.Checked = False '取消选中
End If

如果用下面的方式选择,当前行就会被选中,无论当前行是不是需要的行;
DataTables("采购价格").ReplaceFor("选择",True,"sys_采购合同内码 = " & a("sys_采购合同内码") & " and 作废 = false") '选择未作废的记录
[此贴子已经被作者于2022/2/5 17:09:39编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

CheckBox控件是不是绑定了列?

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/2/6 14:12:00 [只看该作者]

不必要这么遍历!
[此贴子已经被作者于2022/2/6 14:24:37编辑过]

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


加好友 发短信
等级:童狐 帖子:279 积分:3104 威望:0 精华:0 注册:2019/7/19 15:14:00
  发帖心情 Post By:2022/2/8 22:56:00 [只看该作者]

想不到其他办法用来选择

 回到顶部