以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 多列值输入问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102663) |
-- 作者:有点蓝 -- 发布时间:2017/6/23 15:47:00 -- DataColChanging事件:http://www.foxtable.com/webhelp/scr/0624.htm Select Case e.DataCol.Name Case "第一列" If e.NewValue > "" AndAlso (e.DataRow.Isnull("第二列") = False OrElse e.DataRow.Isnull("第三列") = False) Then msgbox("第二列或第三列已经有值") e.Cancel = True End If Case "第二列" If e.NewValue > "" AndAlso (e.DataRow.Isnull("第一列") = False OrElse e.DataRow.Isnull("第三列") = False) Then msgbox("第一列或第三列已经有值") e.Cancel = True End If Case "第三列" If e.NewValue > "" AndAlso (e.DataRow.Isnull("第二列") = False OrElse e.DataRow.Isnull("第一列") = False) Then msgbox("第一列或第二列已经有值") e.Cancel = True End If End Select
|
-- 作者:有点蓝 -- 发布时间:2017/6/23 23:00:00 -- Dim lst As new List(of String) lst.AddRange(new String () {"第一列","第二列","第三列","第四列","第五列"}) Select Case e.DataCol.Name Case "第一列","第二列","第三列","第四列","第五列" lst.Remove(e.DataCol.Name) If e.NewValue > "" For Each c As String In lst If e.DataRow.Isnull(c) = False Then If MessageBox.Show(c & "已经有值,是否清除","提示",MessageBoxButtons.YesNo) = DialogResult.Yes Then e.DataRow(c) = Nothing Else e.Cancel = True Return End If End If Next End If End Select
|
-- 作者:有点蓝 -- 发布时间:2017/6/24 8:40:00 -- 如果不是字符列 If e.NewValue > "" 改为 If e.DataRow.Isnull(e.DataCol.Name) = false
|
-- 作者:有点蓝 -- 发布时间:2017/6/24 16:37:00 -- 请完完全全安装4楼集合的用法做,看不懂代码的不要随便改 |
-- 作者:有点蓝 -- 发布时间:2017/6/24 17:37:00 -- Dim lst As new List(of String) lst.AddRange(new String () {"投标报价","费率报价","下浮率报价","投标球号"}) Select Case e.DataCol.Name Case "投标报价","费率报价","下浮率报价","投标球号" lst.Remove(e.DataCol.Name) If e.NewValue IsNot Nothing For Each c As String In lst If e.DataRow.Isnull(c) = False Then If MessageBox.Show(c & "已经有值,是否清除","提示",MessageBoxButtons.YesNo) = DialogResult.Yes Then e.DataRow(c) = Nothing Else e.Cancel = True Return End If End If Next End If End Select
|