Foxtable(狐表)用户栏目专家坐堂 → [原创]一个省事的办法


  共有2551人关注过本帖树形打印复制链接

主题:[原创]一个省事的办法

帅哥哟,离线,有人找我吗?
石四
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
[原创]一个省事的办法  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/25 16:03:00 [只看该作者]

谢谢分享

 回到顶部
帅哥哟,离线,有人找我吗?
石四
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2015/6/25 16:42:00 [只看该作者]

Case (User.Name) 改成 Case Else  结果也一样。

 回到顶部
帅哥哟,离线,有人找我吗?
石四
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By: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       该工作了
.......
不知这样拆解的代码如何编写?请教!请教!

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/25 17:23:00 [只看该作者]

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2015/6/25 17:55:00 [只看该作者]

老师,这一章节,我看来,代码Dim Multi As String = "ab|cd|ef"是固定的,而CheckedComboBox是动态勾选的

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/25 18:16:00 [只看该作者]

 一样的意思

 

Dim Multi As String = e.Form.Controls("CheckedComboBox1").Text

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By: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

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

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/26 10:21:00 [只看该作者]

 无语

 

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

 


 回到顶部
总数 13 1 2 下一页