用短信审批数据

假定有一个订单表,允许领导通过短信审批订单。

设计步骤:

1、首先我们要约定提交待审批订单、订单通过审核,订单未通过审核的格式:

格式 说明
##订单编号#订单内容 待审批订单,例如:

##0124#联想公司,产品PD01,单价125.8,数量800,表示待审核的订单编号是0124,后面是订单内容。
##订单编号#审批内容 表示订单通过审核,例如:

##0124,表示编号为0124的订单通过审核。
##0124#注意跟进,表示编号为0124的订单通过审核,领导批示“注意跟进”。

??订单编号?审批内容 表示订单未通过审核,例如:

??0124,表示编号为0124的订单未通过审核,
??0124?单价过低,表示编号为0124的订单未通过审核,领导批示“单价过低”。

2、在项目事件AfterOpenProject设置代码:

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


本页地址:http://www.foxtable.com/webhelp/topics/2449.htm