以文本方式查看主题

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

--  作者:石四
--  发布时间:2015/6/25 16:02:00
--  [原创]一个省事的办法

用户间通讯,教程是指定用户设置,如果新增用户,就不方便了,得修改代码。

 

试着把代码改成: 

Dim Filter As String

Select Case User.Name

    Case "管理员","开发者"

        Filter = ""  \'指定用户加载所有行

    Case (User.Name)

        Filter = "接收者 = \'" & User.Name & "\' Or 发送者 = \'" & User.Name & "\'"

End Select

DataTables("信息表").LoadFilter = Filter

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

 

通过!新增用户不需再改代码了


--  作者:Bin
--  发布时间:2015/6/25 16:03:00
--  
谢谢分享
--  作者:石四
--  发布时间:2015/6/25 16:42:00
--  
Case (User.Name) 改成 Case Else  结果也一样。
--  作者:石四
--  发布时间:2015/6/25 16:46:00
--  

如果你使用的Foxtable开发版,可以用AppendLoadAsync代替代替上述代码中的AppendLoad,这样效果会更好。

怎么用AppendLoadAsync代替代替上述代码中的AppendLoad

 

 

Dim flt As String
Dim
drs As List(Of DataRow)
flt =
"接收者 = \'" & User.Name & "\' And 接收时间 Is Null"
drs =
DataTables("信息表").AppendLoad(flt, False)
For
Each dr As DataRow In drs
    dr(
"接收时间") = Date.Now()
    dr.Save()

Next

把drs = DataTables("信息表").AppendLoad(flt, False)改成drs = DataTables("信息表").AppendLoadAsync(flt, False)报错呢!



--  作者:douglas738888
--  发布时间:2015/6/25 17:14:00
--  
楼主,请教下下:
我也模仿指南上的用户间通讯进行了学习,在制作过程中,我把收件人替换成了CheckedComboBox,把DataTables("信息表").LoadFilter = Filter改为
DataTables("信息表").LoadFilter ="[_Identify]>0",收件人变成可选多人,而且用户登录也能在一行中收到发送的信息,但是我一直想把CheckedComboBox中勾选的多人和内容进行拆解,尝试编写代码几天了都不成功,请教请教楼主。
例如:
管理人员在CheckedComboBox中勾选了人员A,B,C,并给他们发送同一条工作信息后,在信息表接收者列中分别增加行为
发送者       接收者     内容
管理人员      A       该工作了
管理人员      B       该工作了
管理人员      C       该工作了

A登录后单独可见管理者发来的工作信息
发送者      接收者      内容
管理人员      A       该工作了

B登录后单独可见管理者发来的工作信息
发送者      接收者      内容
管理人员      B       该工作了
.......
不知这样拆解的代码如何编写?请教!请教!

--  作者:大红袍
--  发布时间:2015/6/25 17:23:00
--  

 你直接用split分隔内容即可。

 

 http://www.foxtable.com/help/topics/0245.htm

 


--  作者:douglas738888
--  发布时间:2015/6/25 17:55:00
--  
老师,这一章节,我看来,代码Dim Multi As String = "ab|cd|ef"是固定的,而CheckedComboBox是动态勾选的
--  作者:大红袍
--  发布时间:2015/6/25 18:16:00
--  

 一样的意思

 

Dim Multi As String = e.Form.Controls("CheckedComboBox1").Text
--  作者:douglas738888
--  发布时间:2015/6/26 10:20:00
--  
大红袍老师,
Dim Multi As String = e.Form.Controls("CheckedComboBox1").Text
Dim Values() as String
Values
 = Multi.split("|")
For 
Index As Integer = 0 To Values.Length - 1
    Output.Show(Values(Index
)) 
Next

以上代码在命令窗口测试出现

--  作者:大红袍
--  发布时间:2015/6/26 10:21:00
--  

 无语

 

Dim Multi As String = Forms("窗口1").Controls("CheckedComboBox1").Text