以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  短信审核权限问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68073)

--  作者:hzyt
--  发布时间:2015/5/8 20:34:00
--  短信审核权限问题

[求助] 在帮助这个例子里只要知道审核模板不管什么手机号都能审核,能不能限定权限只有这个号码可以才能审核?

FoxSms.SyncWorkMode = False \'设置为异步工作模式
FoxSMS.CommPort =
3 \'注意端口号千万不能搞错
FoxSMS
.OpenCom
()

3、在项目事件BeforeCloseProject事件中设置代码:

FoxSMS.CloseCom()

4、然后在短信监视器中,设置ConnectModemResult事件的代码为:

If e.Succeed = False Then
    MessageBox.Show(
"短信猫连接失败!","提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End
If

5、在菜单或者窗口中增加一个“提交审核”按钮,将其代码设置为:

Dim msg As String
Dim
r As Row = Tables("订单").Current
msg =
"##" & r("编号") & "#" & r("客户") & ",产品:" & r("产品") & ",数量:" & r("数量") & ",单价:" & r("单价")
FoxSMS.SendMsg(
"13800138000",msg)
\'请改为领导的手机号码

 

6、然后在短信监视器中,设置NewMessage事件的代码为:

Dim msg As String = e.Content
If
msg.StartsWith("##") OrElse msg.StartsWith("??") Then
    msg = msg.Replace(
"?","#")
    Dim
vals() As String = msg.Trim("#").Split("#")
    Dim
dr As DataRow = DataTables("订单").Find("编号 = \'" & vals(0) & "\'")
    If
dr IsNot Nothing Then
        dr(
"审核") = e.Content.StartsWith("##") \'判断是否通过审批
       
If vals.Length > 1 AndAlso vals(1)> "" Then \'如果回复的短信包括审批内容
           
If dr.IsNull("备注") = False Then
                dr(
"备注") = dr("备注") & vbcrlf
            End
If
            dr(
"备注") = dr("备注") & vals(1) \'在备注中记录审批内容
       
End If
    Else

        FoxSMS.SendMsg(e.FromNumber,
"订单编号错误:" & vals(0))
    End
If
    FoxSms.DelMsgForIndex(e.Index)
\'从SIM卡删除此短信
End
If


--  作者:Bin
--  发布时间:2015/5/9 9:00:00
--  
http://www.foxtable.com/help/topics/2424.htm

e.FromNumber 可以判断号码.根据此号码,加入一个IF判断即可

比如if e.FromNumber="13722245567" then
  end if

--  作者:hzyt
--  发布时间:2015/5/9 10:08:00
--  

非常感谢!!


--  作者:hzyt
--  发布时间:2015/5/9 14:25:00
--  
大师,您好!我试了下还是不起作用,不知道是哪里原因 现在提交审核还是可以的,可审核没起作用了,好像接不到信息一样的
[此贴子已经被作者于2015/5/9 14:37:39编辑过]

--  作者:Bin
--  发布时间:2015/5/9 14:26:00
--  
你的IF判断有问题吧. Messagebox.SHOW(e.FromNumber) 弹出号码看一下.看看和你设想的是否对应
--  作者:hzyt
--  发布时间:2015/5/9 15:29:00
--  

大师,您好!不好意思又要打扰您了,因为我是初学很难理会请谅解,

刚才我试了几次之后,现在连源码不判断也没反应了(回信息审核没反应)

[此贴子已经被作者于2015/5/9 16:05:20编辑过]

--  作者:Bin
--  发布时间:2015/5/9 15:31:00
--  
可能是短信猫没接上,你检查一下看看
--  作者:hzyt
--  发布时间:2015/5/9 16:07:00
--  
可它能提交短信审核(能发送)
[此贴子已经被作者于2015/5/9 16:11:19编辑过]

--  作者:Bin
--  发布时间:2015/5/9 16:07:00
--  
在事件最前面加入这句代码看看 Messagebox.SHOW(e.FromNumber) 
--  作者:hzyt
--  发布时间:2015/5/9 16:15:00
--  

Messagebox.SHOW(e.FromNumber)

Dim msg As String = e.Content
If msg.StartsWith("##") OrElse msg.StartsWith("??") Then
    msg = msg.Replace("?","#")
    Dim vals() As String = msg.Trim("#").Split("#")
    Dim dr As DataRow = DataTables("订单出货表").Find("出货单号 = \'" & vals(0) & "\'")
    If dr IsNot Nothing Then
        dr("审核状态") = e.Content.StartsWith("##") \'判断是否通过审批
       
        If vals.Length > 1 AndAlso vals(1)> "" Then \'如果回复的短信包括审批内容
            If dr.IsNull("备注") = False Then
                dr("备注") = dr("备注") & vbcrlf
            End If
            dr("备注") = dr("备注") & vals(1) \'在备注中记录审批内容
        End If
    Else
        FoxSMS.SendMsg(e.FromNumber,"订单编号错误:" & vals(0))
    End If
    FoxSms.DelMsgForIndex(e.Index) \'从SIM卡删除此短信
End If

--------------------------------

试过 也没反应

 

[此贴子已经被作者于2015/5/9 16:16:11编辑过]