以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多值字段拆解问题请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70509)

--  作者:douglas738888
--  发布时间:2015/6/23 15:50:00
--  多值字段拆解问题请教
在制作用户通讯时,通过CheckedComboBox控件实现通过勾选后向多人发送用一条信息,通过修改LoadFilter= "[_Identify]>0"已实现向多人发送同一条信息,信息表中也在一行中显示“张三,李四”,这两人分别登录后可在信息表中看到他人发来的信息。
想实现张三通过CheckedComboBox勾选后,向李四、王五发送同一条信息,但李四登录后在信息表中显示接收者为李四,王五登录后在信息表中显示接收者为王五,但两人的信息为同一个内容,简单的说就是李四和王五在信息表中分别为两行显示,各人只能看到他人发来的信息,另外再请教如何实现分别的接收时间。
以下是在LoadUserSetting中设置的代码,还存在问题,特请教老师们,谢谢!!
Dim Filter As String
Select Case User.Name
    Case UserName
        Filter = "接收者 = \'" & User.Name & "\' Or 发送者 = \'" & User.Name & "\'"
    Case Else
        Filter = ""  \'其他用户记载所有行
End Select
DataTables("信息表").LoadFilter = "[_Identify]>0"
DataTables("信息表").Load()
Dim drs As List(of DataRow) = DataTables("信息表").Select("接收者 = \'" & User.Name & "\' And 接收时间 Is Null")
If drs.Count > 0 Then
    For Each dr As DataRow In drs
        dr("接收时间") = Date.Now
    Next
    DataTables("信息表").Save()
End If
For i As Integer = 0 To DataTables("信息表").DataRows.Count-1
Dim dt As DataTable
For Each dr1 As DataRow In DataTables("信息表").DataRows
    If dr1.IsNull("接收者") = False Then
        Dim nms() As String = dr1("接收者").Split(",")
        For Each nm As String In nms
Dim r As Row = Tables("信息表").AddNew
            r("接收者") = nms(i)
        Next
    End If
  Next
Next

--  作者:Bin
--  发布时间:2015/6/23 16:10:00
--  
那就不要什么多值字段了.每个人一条数据.
--  作者:douglas738888
--  发布时间:2015/6/23 16:26:00
--  
版主,我的想法是,通过参照内部通讯的方式改造成工作派工的形式,一条工作指令向A,B,C等人发送,另一条工作指令向E,F等人发送,因为人员较多,采用多值勾选的方式分别向一组和另外几组员工发布不同的工作任务指令(工作任务的内容文字相对有点多),除了内部通讯,其他还有什么方法或思路,请指教!!
--  作者:大红袍
--  发布时间:2015/6/23 16:49:00
--  

 控制加载

 

Dim Filter As String
Filter = "接收者 = \'" & User.Name & "\' Or 发送者 = \'" & User.Name & "\'"
 
DataTables("信息表").LoadFilter = filter
DataTables("信息表").Load()
 
 分别接收时间,你可以直接去表里修改,因为一进入系统,肯定就把所有信息接收一遍了。
[此贴子已经被作者于2015/6/23 16:49:05编辑过]