以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 关于判断“包含”和“是否为空”的几个问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128560) |
-- 作者:龙潭春早 -- 发布时间:2018/12/10 15:16:00 -- [求助] 关于判断“包含”和“是否为空”的几个问题 关于判断“包含”和“是否为空”的几个问题 请教:下面的判断和用法有问题吗? If DataTable.DataCols.Contains("首付款_付款金额") Then If DataTable.DataCols.IsNotNull("首付款_付款金额") And
_ DataTable.DataCols.IsNull("二次付款_付款金额") Then DataTable.DataCols("二次付款_付款金额") = 0 End If
End If 在代码编辑器中保存代码时,显示错误: |
-- 作者:y2287958 -- 发布时间:2018/12/10 15:19:00 -- DataTable.没有这些用法 |
-- 作者:龙潭春早 -- 发布时间:2018/12/10 15:37:00 -- 要想做出以上的逻辑判断,老师能给个完整的代码吗? |
-- 作者:y2287958 -- 发布时间:2018/12/10 15:52:00 -- If DataTables("表").DataCols.Contains("首付款_付款金额") Then Dim dr As DataRow = DataTables("表").DataRows(0) \'这里自己定 If dr.Isnull("首付款_付款金额") = False AndAlso dr.Isnull("二次付款_付款金额") dr.Isnull("二次付款_付款金额") = 0 End If End If |
-- 作者:有点甜 -- 发布时间:2018/12/10 16:37:00 -- 具体一点你的问题吧
If DataTables("表").DataCols.Contains("首付款_付款金额") Then [此贴子已经被作者于2018/12/10 16:38:21编辑过]
|
-- 作者:龙潭春早 -- 发布时间:2018/12/10 17:29:00 -- 想说的是: 1)任务:对多个表做相同的判断,用在 LoadUserSetting 事件中 因为有多个表要做相同的判断,所以,代码中能否不体现具体的表名,而用一个通用的代码表示所有的表? 2)判断:当一个表的 “A列” 不为空、而 “B列” 为空时,给 “B列” 赋值为 “0”;
|
-- 作者:有点甜 -- 发布时间:2018/12/10 17:52:00 -- 全局表事件,代码写到datacolchanged事件
http://www.foxtable.com/webhelp/scr/0671.htm
|
-- 作者:龙潭春早 -- 发布时间:2018/12/10 21:16:00 -- 嗯 研究了。 不过,根据上面 6楼 提到的任务和判断,甜老师能再给出一段代码吗?
|
-- 作者:有点蓝 -- 发布时间:2018/12/10 21:30:00 -- Dim ts() As String = {"表A","表B"} For Each t As String In ts DataTables(t).ReplaceFor("B列",0,"B列 is null and A列 is not null") Next
|
-- 作者:龙潭春早 -- 发布时间:2018/12/11 13:17:00 -- 哦 昨天晚上是蓝老师值班,谢谢啦! 不过,蓝老师,这段代码还是涉及到了具体的 “表A” 和 “表B”。 按照 6楼 的任务,想对 “多个表要做相同的判断,所以,代码中能否不体现具体的表名,而用一个通用的代码表示所有的表?” 表比较多的话,一个个的列举出来就很麻烦了。 所以,是否可以将代码: DataTable.ReplaceFor("B列",0,"B列 is null and A列 is not null") 直接放到全局表事件 datacolchanged 之中呢? 这段代码前后,还需要有其它配合的代码吗? |