以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  数据行数据限制  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146041)

--  作者:裴保民
--  发布时间:2020/2/14 19:38:00
--  数据行数据限制
有一个逻辑字段 在修改或添加数据的时候整个数据中只能有一行数据为真其他的都为假呢?
[此贴子已经被作者于2020/2/14 20:16:12编辑过]

--  作者:有点蓝
--  发布时间:2020/2/14 20:36:00
--  
datacolchanged事件里使用replacefor把其它行全部改为false即可:http://www.foxtable.com/webhelp/topics/1532.htm
--  作者:裴保民
--  发布时间:2020/2/14 21:00:00
--  
If e.DataCol.Name = "账户默认" Then \'如果是已结帐列的内容变动
    If e.NewValue = True Then \'而且变动后的值是True(已勾选)
For Each dr As DataRow In DataTables("资金账户").Select("[账户默认]=True     ")
    dr("账户默认") = False
Next
    End If
End If
这样会把所有的行的"账户默认"字段都变成了False
我是想用实现更改或添加某一行数据=True的时候把其他行的"账户默认"字段改为 False,当前行是=True

--  作者:有点蓝
--  发布时间:2020/2/14 21:14:00
--  
If e.DataCol.Name = "账户默认" Then \'如果是已结帐列的内容变动
    If e.NewValue = True Then \'而且变动后的值是True(已勾选)
e.datatable.replacefor("账户默认",false,"账户默认=true and _Identify <>" & e.datarow("_Identify"))
    End If
End If