以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于列多值字段筛选自动输入问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153234) |
||||
-- 作者:jhxb8821 -- 发布时间:2020/8/4 15:36:00 -- 关于列多值字段筛选自动输入问题 我有两个表,一个“员工”表,一个“活动表”。“活动表”有四列:活动一参与、活动二参与、活动三参与、剩余人员。能否实现以下人员输入设想:只需要在“活动一参与”列中输入人员姓名,剩余人员在“剩余人员”列显示;在“活动二参与”列中输入人员姓名,剩余人员在“剩余人员”列中自动减少;在“活动三参与”列中输入人员姓名,剩余人员在“剩余人员”列中自动减少。敬请指教,怎么写代码来实现 |
||||
-- 作者:jhxb8821 -- 发布时间:2020/8/4 15:46:00 --
|
||||
-- 作者:y2287958 -- 发布时间:2020/8/4 16:09:00 -- Dim 集合1 As List(of String) = DataTables("员工").GetValues("姓名") Select Case e.DataCol.Name Case "活动一参与" Dim 集合2 As new List(of String) If e.NewValue IsNot Nothing Then 集合2.AddRange(e.NewValue.split(",")) 集合2.AddRange(e.DataRow("活动二参与").split(",")) 集合2.AddRange(e.DataRow("活动三参与").split(",")) e.DataRow("剩余人员") = String.join(",",(集合1.Except(集合2)).ToArray) Case "活动二参与" Dim 集合2 As new List(of String) If e.NewValue IsNot Nothing Then 集合2.AddRange(e.NewValue.split(",")) 集合2.AddRange(e.DataRow("活动一参与").split(",")) 集合2.AddRange(e.DataRow("活动三参与").split(",")) e.DataRow("剩余人员") = String.join(",",(集合1.Except(集合2)).ToArray) Case "活动三参与" Dim 集合2 As new List(of String) If e.NewValue IsNot Nothing Then 集合2.AddRange(e.NewValue.split(",")) 集合2.AddRange(e.DataRow("活动一参与").split(",")) 集合2.AddRange(e.DataRow("活动二参与").split(",")) e.DataRow("剩余人员") = String.join(",",(集合1.Except(集合2)).ToArray) End Select [此贴子已经被作者于2020/8/4 16:18:31编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/8/4 16:21:00 -- If e.DataCol.Name Like "*参与" Then Dim s As String = "" For Each dc As DataCol In e.DataTable.DataCols If dc.Name Like "*参与" Then s = s & "," & e.DataRow(dc.Name) End If Next If s > "" Then s = s.Trim(",").Replace(",","\',\'") e.DataRow("剩余人员") = DataTables("员工").GetComboListString("姓名","姓名 not in(\'" & s & "\')").replace("|",",") Else e.DataRow("剩余人员") = DataTables("员工").GetComboListString("姓名").replace("|",",") End If End If
|
||||
-- 作者:jhxb8821 -- 发布时间:2020/8/4 17:45:00 -- 好 老师,但这样活动1-3参与,人员有重复,能否不能重复,怎么修改 |
||||
-- 作者:jhxb8821 -- 发布时间:2020/8/4 17:52:00 -- 非常感谢 非常感谢 |
||||
-- 作者:有点蓝 -- 发布时间:2020/8/4 20:08:00 -- 重复按照之前的方法排除,用法都差不多。 |