以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 多列字段的互斥问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77155)
|
-- 作者:sloyy
-- 发布时间:2015/11/11 23:40:00
-- 多列字段的互斥问题
如图: 显示列 统计列 都是多值字段,并绑定到同一个字段 此主题相关图片如下:未命名.bmp
现在想达到这个目的: 显示列,统计列不能有重复字段 1 在显示列选择了的值,在统计列就是不选状态 2 在统计列选了的值,在显示列就是不选状态. 如图的金额就明显重复了. 应该如何写代码?
[此贴子已经被作者于2015/11/11 23:42:25编辑过]
|
-- 作者:Hyphen
-- 发布时间:2015/11/12 8:55:00
--
使用动态列表,GetComboListString的时候排除一下显示列已有的内容
|
-- 作者:lsy
-- 发布时间:2015/11/12 8:57:00
--
再加一逻辑列(例如“数字”),标明被绑定字段相应行的值是否属于数字列。 在“显示列”的列属性设置中,将过滤条件设为:数字 = False 在“汇总列”的列属性设置中,将过滤条件设为:数字 = True
思路就是这样,根据你的实际情况变化。
|
-- 作者:大红袍
-- 发布时间:2015/11/12 9:10:00
--
GetComboListString 的条件写上如 "字段 not in (\'" & e.Row("显示列").Replace(",", "\',\'") & "\')"
|
-- 作者:sloyy
-- 发布时间:2015/11/12 15:01:00
--
呵呵 ,我想的太多了,一个简单的替换就解决了
在AfterEdit事件里面写代码: Dim s2() As String If e.Col.Name = "汇总列" Then \'如果汇总列发生变动 s2=e.Row("汇总列").split(",") \'建立数组 For n As Integer =0 To s2.Length-1 e.Row("显示列")= e.Row("显示列").replace("," &s2(n),"") \'替换 Next End If
|