以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自定义信息提示窗口  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97147)

--  作者:riverzhang163
--  发布时间:2017/3/6 23:59:00
--  [求助]自定义信息提示窗口
请参考以下帮助信息:

3、在发货单编辑窗口的保存按钮中,写入如下代码:

Dim r As Row  = Tables("送货单").Current
r
.Save()
QQClient
.Send("李四","+@|" & r("_Identify") & "|" & r("单号") & "|" & User.Name)

4、在发货单编辑窗口的审核按钮中,写入如下代码:

Dim r As Row  = Tables("送货单").Current
r
("审核") = True
r
.Save()
\'发送审核通过的消息

QQClient
.Send("张三","-@|" & r("单号") & "|" & User.Name)


我想问的是:

1.如果送货单不仅仅是张三一个人可以录入,其他人比如王五也可以录入,这样的话第4条发送审核能过的消息要怎么写,是要把所有有录入权限的人都写上吗?


2.同样,如果有审核权的不仅是李四一个人,一个部门可以有好几个人都有审核权限,这样的话第3条的消息发送语句要怎样写?


  谢谢!


--  作者:有点蓝
--  发布时间:2017/3/7 8:41:00
--  
1、表格增加一列,保存的时候记录参与编辑的人员,然后根据这一列记录的人员发送消息,比如这一列记录的数据为:张三,王五
那么代码参考:
for each n as string in r("编辑者").split(",")
  QQClient.Send(n,"+@|" & r("_Identify") & "|" & r("单号") & "|" & User.Name)
next

2、和上面的方法类似,找地方存储有审核权限的人员,或者在用户管理中给有审核权限的人员进行分组,比如叫做审核组,那么代码参考:

For Each us As UserInfo In Users
    If us.Group = "审核组" Then
        QQClient.Send(us.Name,"-@|" & r("单号") & "|" & User.Name)
    End If
Next

--  作者:riverzhang163
--  发布时间:2017/3/8 16:19:00
--  
可不可以用ISROLE 来判定?
--  作者:有点色
--  发布时间:2017/3/8 16:38:00
--  
以下是引用riverzhang163在2017/3/8 16:19:00的发言:
可不可以用ISROLE 来判定?

 

肯定可以

 

For Each us As UserInfo In Users
    If us.Roles.Contains("审核组") Then
        QQClient.Send(us.Name,"-@|" & r("单号") & "|" & User.Name)
    End If
Next

--  作者:riverzhang163
--  发布时间:2017/3/8 17:30:00
--  
我写了以下语句:
Dim r As Row = Tables("楦头资料").Current
r.Save()
For Each us As UserInfo In Users
    If us.Roles.Contains("审核") Then
        QQClient.Send(us.Name,"-@|" & r("楦头编号") & "|" & User.Name)
    End If
Next

但是显示错误:
.NET Framework 版本:2.0.50727.8745
Foxtable 版本:2017.3.1.1
错误所在事件:窗口,楦头资料编辑,Button1,Click
详细错误信息:
未将对象引用设置到对象的实例。


--  作者:有点色
--  发布时间:2017/3/8 17:36:00
--  

Dim r As Row = Tables("楦头资料").Current
If r IsNot Nothing Then
    r.Save()
    For Each us As UserInfo In Users
        If us.Roles.Contains("审核") Then
            QQClient.Send(us.Name,"-@|" & r("楦头编号") & "|" & User.Name)
        End If
    Next
End If

 


--  作者:riverzhang163
--  发布时间:2017/3/8 17:56:00
--  
If us.Roles.Contains("审核") Then
这句话是指us 如果角色包含“审核“,对吗?

--  作者:有点色
--  发布时间:2017/3/8 17:58:00
--  

嗯嗯,是的,roles是一个字符串

 

http://www.foxtable.com/webhelp/scr/1422.htm

 


--  作者:riverzhang163
--  发布时间:2017/3/8 23:12:00
--  
试了一下,但是还是出现以下提示:

.NET Framework 版本:2.0.50727.8745
Foxtable 版本:2017.3.1.1
错误所在事件:窗口,楦头资料编辑,Button1,Click
详细错误信息:
未将对象引用设置到对象的实例。

Button1是保存按钮。

是什么原因呢?

--  作者:有点色
--  发布时间:2017/3/8 23:21:00
--  

 你看看你表的保存事件 beforeSaveDataRow 那里有可能有代码影响。