以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多值字段的值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66106)

--  作者:一笑
--  发布时间:2015/3/30 13:25:00
--  多值字段的值
如附件表格,“姓名”列已设置为多值字段和列表项目,选择输入后,想“早班”列中的列表项目为“姓名”列中选择的值,如表中“孙少,王东,张三”,请问如何用代码实现?谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多值字段上传.xls


--  作者:Bin
--  发布时间:2015/3/30 13:31:00
--  
请上狐表例子.
--  作者:有点甜
--  发布时间:2015/3/30 14:16:00
--  

 DataColChanged 事件

 

If e.DataCol.Name = "姓名" Then
    If e.NewValue = Nothing Then
        e.DataRow("早班") = Nothing
        e.DataRow("中班") = Nothing
        e.DataRow("晚班") = Nothing
    Else
        Dim ary() As String = e.NewValue.split(",")
        If ary.length = 1 Then
            e.DataRow("早班") = ary(0)
        Else If ary.length = 2 Then
            e.DataRow("早班") = ary(0)
            e.DataRow("中班") = ary(1)
        Else If ary.length = 3 Then
            e.DataRow("早班") = ary(0)
            e.DataRow("中班") = ary(1)
            e.DataRow("晚班") = ary(2)
        End If
    End If
End If


--  作者:一笑
--  发布时间:2015/3/30 15:22:00
--  
谢谢。
还有一个小问题,早班、中班和晚班的值不是固定顺序,需进行选择。比如,早班值可选择为第二个值或第3个值(ary(2),ary(2)),中班的值也是同样。还可以如何修改,谢谢

--  作者:有点甜
--  发布时间:2015/3/30 15:24:00
--  
 你这样肯定矛盾,没有规则怎么可能得到去掉的值。
--  作者:有点甜
--  发布时间:2015/3/30 15:27:00
--  

 或者,你去编写prepareEdit事件

 

 Select Case e.Col.Name
    Case "早班", "中班", "晚班"
        e.Col.ComboList = e.Row("姓名").replace(",", "|")
End Select