用短信收集数据

假定有一个订单表,允许业务员通过手机短信来提交订单。

设计步骤:

1、首先我们要约定提交信息的格式:@@客户@产品@数量@单价。例如收到短信“@@联想公司@PD01@800@128.5”,表示联想公司订购产品PD01,数量是800台,单价是128.5

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、然后在短信监视器中,设置NewMessage事件的代码为:

If e.Content.StartsWith("@@") Then '如果信息是以约定的@@开始
    Dim vals() As String = e.Content.Trim("@").Split("@")
    Dim
ret As
String
   
If vals.Length = 4 Then '如果数组长度等于4
       
If vals(0) > "" AndAlso vals(1) > "" Then '且提交了客户名称和产品名称
           
Dim Quantity As Integer
           
Dim Price As Double
           
If Integer.TryParse(Vals(2), Quantity) '如果数量格式正确
               
If Double.TryParse(Vals(3), Price) Then '如果单价格式正确
                   
Dim dr As DataRow = DataTables("订单").AddNew()
                    dr(
"客户") = vals(0)
                    dr(
"产品") = vals(1)
                    dr(
"数量") = vals(2)
                    dr(
"单价") = vals(3)
                    ret =
"提交成功:" & e.Content
                End
If
           
End If
       
End If
   
End If
   
If ret = "" Then
        ret =
"格式错误:" & e.Content
    End
If
   
FoxSms.DelMsgForIndex(e.Index) '从SIM卡删除此短信
    FoxSMS.SendMsg(e.FromNumber,ret)
'回复短信,告诉业务员,此订单是否提交成功
End
If


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