以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- datacolchanging 问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160546) |
-- 作者:edisontsui -- 发布时间:2021/2/5 16:21:00 -- datacolchanging 问题 If e.DataCol.Name = "备注" Then If e.DataRow("单价") = 0 If e.NewValue Is Nothing Then MessageBox.Show("请在单价一栏输入单价!", "提示") e.Cancel = True End If End If End If If e.DataCol.Name = "备注" Then If e.DataRow("单价") = 0 If e.NewValue.contains("免费") = False Then MessageBox.Show("非免费商品请在单价一栏输入单价!", "提示") e.Cancel = True End If End If End If 上面两段代码放在同一个事件 datacolchanging 里面,在执行的时候(清空“备注”栏),会出现如下警告: .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件:表,采购单,DataColChanging 详细错误信息: 调用的目标发生了异常。 未设置对象变量或 With 块变量。 如果将那两段代码合并成如下: If e.DataCol.Name = "备注" Then If e.DataRow("单价") = 0 If e.NewValue Is Nothing orelse e.NewValue.contains("免费") = False Then MessageBox.Show("请在单价一栏输入单价!", "提示") e.Cancel = True End If End If End If 执行时(清空“备注”栏)也会出现同样的警告。请问是什么问题? 如果去掉第一段代码,只保留如下代码,执行时(清空“备注”栏)也会一样的警告: If e.DataCol.Name = "备注" Then If e.DataRow("单价") = 0 If e.NewValue.contains("免费") = False Then MessageBox.Show("非免费商品请在单价一栏输入单价!", "提示") e.Cancel = True End If End If End If |
-- 作者:有点蓝 -- 发布时间:2021/2/5 16:42:00 -- If e.DataCol.Name = "单价" Then If e.NewValue = nothing andalso (e.DataRow.isnull("备注") orelse e.DataRow("备注") like "*免费*" ) MessageBox.Show("请在单价一栏输入单价!", "提示") e.Cancel = True End If End If
|