以文本方式查看主题

-  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