Foxtable(狐表)用户栏目专家坐堂 → [求助]多列组合判断重复


  共有3667人关注过本帖树形打印复制链接

主题:[求助]多列组合判断重复

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]多列组合判断重复  发帖心情 Post By:2020/12/8 12:37:00 [只看该作者]

表中有ABC三列。
希望ABC中的任何一列修改值时,如果A&B&C已经有相同数据,则不允许修改
select case e.col.name
case "A","B","C"
dim x as string = ""
select case e.col.name
case "A"
x = e.newvalue & " " & e.datarow("B") & " " & e.datarow("C")
case "B"
x = e.datarow("A") & " " & e.newvalue & " " & e.datarow("C")
case "C"
……
end select 
dim dr as datarow = e.datatable.find("FullCol = '" & x  & "'")  '这里FullCol 是A + ‘ ’ + B + ‘ ’ + C的表达式
if dr isnot nothing then 
e.cancel = true 
end if 
end select
感觉这样写有点麻烦了,有没有简单点的做法?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/8 13:34:00 [只看该作者]

datacolchanged事件:http://www.foxtable.com/webhelp/topics/2481.htm,看最后一种用法

select case e.datacol.name
case "A","B","C"
dim x as string =e.datarow("A") & " " & e.datarow("B") & " " & e.datarow("C")
dim dr as datarow = e.datatable.find("FullCol = '" & x  & "'")  '这里FullCol 是A + ‘ ’ + B + ‘ ’ + C的表达式
if dr isnot nothing then 
e.DataRow(e.DataCol.Name) = e.OldValue
end if 
end select

 回到顶部