以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]for each 遍历选择时出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174783) |
-- 作者:流水 -- 发布时间:2022/2/5 15:45:00 -- [求助]for each 遍历选择时出错 在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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/2/6 10:43:00 -- CheckBox控件是不是绑定了列? |
-- 作者:程兴刚 -- 发布时间:2022/2/6 14:12:00 -- 不必要这么遍历! [此贴子已经被作者于2022/2/6 14:24:37编辑过]
|
-- 作者:流水 -- 发布时间:2022/2/8 22:56:00 -- 想不到其他办法用来选择 |