用短信审批数据
假定有一个订单表,允许领导通过短信审批订单。
设计步骤:
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