以文本方式查看主题

-  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=124648)

--  作者:wangjx817
--  发布时间:2018/9/11 12:05:00
--  【求助】多值字段多项选中的结果显示

例如在某表的某列设置为多值段扩展列后,有A\\B\\C\\D四个可选项:

譬如在该列输入时,当先选A,再选B时,当前行该列的取值为“A,B”;但如果在输入时,是先选B,再选A时,当前行该列的取值就会变为“B,A”。

 

狐表是否可以做到,无论我是先选A再选B,还是先选B再选A的操作方式,当前行该列的取值都为“A,B”。



--  作者:有点甜
--  发布时间:2018/9/11 12:13:00
--  

参考代码

 

Dim str As String = "A,B,C,D"
Dim ss As String = "C,A,B"
Dim ary = ss.split(",")
Dim nstr As String = ""
For Each s As String In str.split(",")
    If ary.Indexof(ary, s) >= 0 Then
        nstr &= s & ","
    End If
Next
msgbox(nstr.trim(","))


--  作者:wangjx817
--  发布时间:2018/9/11 12:29:00
--  
上述代码放在哪个事件中。
--  作者:有点甜
--  发布时间:2018/9/11 14:39:00
--  

1、看懂代码的意思;

 

2、改写到datacolchanging或者changedEdit。


--  作者:wangjx817
--  发布时间:2018/9/11 15:50:00
--  
某主表某中的下拉复选框多项选中后的值代码如何编写,就是你举例中的“C,B,A”。
--  作者:有点甜
--  发布时间:2018/9/11 16:00:00
--  

比如 datacolchanging 事件

 

If e.DataCol.name = "第一列" Then
   
    Dim str As String = "A,B,C,D"
    Dim ss As String = e.newvalue
    Dim ary = ss.split(",")
    Dim nstr As String = ""
    For Each s As String In str.split(",")
        If ary.Indexof(ary, s) >= 0 Then
            nstr &= s & ","
        End If
    Next
    e.newvalue = nstr.trim(",")
   
End If


--  作者:wangjx817
--  发布时间:2018/9/12 7:25:00
--  
谢谢,狐爸。
--  作者:wangjx817
--  发布时间:2018/9/12 8:31:00
--  

再补充问个问题,我在主表中的多值字段列是用“、”作为分隔符号的,而不是用“,”。为了美观我喜欢用“、”作为分隔符,在写上述代码时用分隔符“、”替换分隔符“,”就变成“?”,怎么解决。


--  作者:有点甜
--  发布时间:2018/9/12 8:47:00
--  

回复8楼,看看

 

http://www.foxtable.com/webhelp/scr/1273.htm

 


--  作者:wangjx817
--  发布时间:2018/9/12 8:59:00
--  
非常感谢!