在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编辑过]