⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.frm

📁 西门子TC35源程序
💻 FRM
📖 第 1 页 / 共 2 页
字号:
    TC35SChangeStatus 7, Status
End Sub


Private Sub TC35S8_ChangeStatus(ByVal Status As EventStatus)
    TC35SChangeStatus 8, Status
End Sub

Private Sub bntOK_Click()
   Me.WindowState = 1
End Sub

Private Sub bntCancel_Click()
   Unload Me
End Sub

Private Sub bntDelete_Click()
  Dim s As String
  If Not ListView.SelectedItem Is Nothing Then
     If ShowYesNo("您真想删除你所选择中的记录!") Then
        OpenCN
        cn.Execute "delete from School_Tc35 where TC35ID=" & Mid(ListView.SelectedItem.Key, 3)
        CloseCN
        ListView.ListItems.Remove ListView.SelectedItem.Key
     End If
  End If
End Sub

Private Sub bntEdit_Click()
  Dim s As String
  If Not ListView.SelectedItem Is Nothing Then
     ShowTC35 CLng(Mid(ListView.SelectedItem.Key, 3))
  End If
End Sub

Private Sub bntNew_Click()
    ShowTC35
End Sub

Private Sub bntSend_Click()
   OkTC35Number = InitComm()
   
    SetTC35(1).Para1 = 392
    SetTC35(1).Para2 = 62
    SetTC35(1).Para3 = "WebSM"
    SetTC35(1).Telphone = "13480724365"
    SetTC35(1).Msg = "test"
    GroupSendSM SetTC35, 1, bExit
   
   If OkTC35Number > 0 Then
      'bntSend.Enabled = False
      SetSendStatus False
'      Timer.Interval = 5000 'GroupSendSM SetTC35, OkTC35Number, bExit '开始群发
      GroupSendSM SetTC35, OkTC35Number, bExit '开始群发
      setStatus "系统启动正常,等待调度...."
   End If
End Sub


'群发SM
Public Sub GroupSendSM(SetTC35() As TC35, ByVal nTC35 As Integer, bExit As Boolean)
   Dim i As Integer
   For i = 1 To nTC35
       DoEvents
       SetTC35(i).Send
       If bExit Then Exit For
   Next i
   
   If bExit Then
     For i = 1 To nTC35
            SetTC35(i).Break
     Next i
   End If
   
End Sub

Private Sub Init()
    
    Set TC35S1 = New TC35
    Set SetTC35(1) = TC35S1
    
    Set TC35S2 = New TC35
    Set SetTC35(2) = TC35S2
    
    Set TC35S3 = New TC35
    Set SetTC35(3) = TC35S3
    
    
    Set TC35S4 = New TC35
    Set SetTC35(4) = TC35S4
    
    
    Set TC35S5 = New TC35
    Set SetTC35(5) = TC35S5
    
    Set TC35S6 = New TC35
    Set SetTC35(6) = TC35S6
    
    Set TC35S7 = New TC35
    Set SetTC35(7) = TC35S7
    
    Set TC35S8 = New TC35
    Set SetTC35(8) = TC35S8
    
End Sub


Private Sub Form_Load()
   On Error GoTo laberr
   Dim s As String
   Dim n As Integer
   If Not isDebug Then
      AddToTray Me, menuTray
      SetTrayTip "校园安全管理短信发送服务程序 V1.0"
   End If
   
   Call Init
   
   bExit = True
   bInit = False
   If GetStr() = False Then '取得当前数据库连接的字符串信息
        setStatus "无法取得数据库连接信息,请运行连接设置程序,然后再执行本程序"
   Else
        n = LoadTC35()
        If n = 0 Then
            setStatus "系统当前没加入TC35短信发送终端设备信息"
        ElseIf n > 0 Then
            setStatus "系统初始化成功,请按下“发送”启动服务"
            bInit = True
        End If
   End If
   SetSendStatus bInit
   Exit Sub
laberr:
   ShowMsg "系统初始化出错,错误信息为 = " & Err.Description
   bInit = False
   SetSendStatus bInit
   bntSTOP.Enabled = False
End Sub


Private Sub Form_Resize()
   If Me.WindowState = 1 Then
        If Not isDebug Then menuTray_Hide_Click
        Exit Sub
    End If
    LastStatus = Me.WindowState
End Sub

Private Sub menuSYS_Set_Click()
   frmSet.Show 1
End Sub



Private Sub ListView_DblClick()
    bntEdit_Click
End Sub

Private Sub menuTC35_Add_Click()
    bntNew_Click
End Sub

Private Sub menuTC35_Delete_Click()
    bntDelete_Click
End Sub

Private Sub menuTC35_Edit_Click()
    If bntEdit.Enabled Then
        bntEdit_Click
    End If
End Sub

Private Sub menuTray_Hide_Click()
   Me.Visible = False
   menuTray_Hide.Enabled = False
   menuTray_Open.Enabled = True
   Me.WindowState = LastStatus
End Sub


'初始化各端口
Private Function InitComm() As Integer
   Dim li As ListItem
   Dim n As Integer
   Dim i As Integer
   Dim s As String
   With ListView.ListItems
      For i = 1 To .Count
          Set li = .Item(i)
          li.Bold = False
          li.SubItems(2) = "正初始化..."
          If SetTC35(i).Init(MSComm(i), li.Text, li.SubItems(1)) = True Then
              SetTC35(i).Key = li.Key
              li.SubItems(2) = "初始化成功"
              'li.SubItems(3) = SetTC35(i).ErrMsg
              li.Bold = True
              n = n + 1
          Else
              li.SubItems(2) = "初始化失败"
              'li.SubItems(3) = SetTC35(i).ErrMsg
          End If
      Next i
   End With
   If n = 0 Then
        s = "无法从当前的设备当中启动一个用于发送短信"
        setStatus s
        ShowMsg s
   End If
   InitComm = n
   Exit Function
laberr:
    s = "初始化各通讯端口时出错,错误信息为:" & Err.Description
    setStatus s
    ShowMsg s
    InitComm = -1
End Function

'关闭端口
Private Sub CloseComm()
   Dim li As ListItem
   Dim i As Integer
   With ListView.ListItems
      For i = 1 To .Count
          Set SetTC35(i) = Nothing
      Next i
   End With
End Sub


Private Sub menuTray_Open_Click()
   Me.Visible = True
   menuTray_Hide.Enabled = True
   menuTray_Open.Enabled = False
End Sub


Private Function StrLen(ByVal s As String) As Integer
   Dim i As Integer
   Dim n As Integer
   n = 0
   For i = 1 To Len(s)
      If Asc(Mid(s, i, 1)) < 0 Then
         n = n + 2
      Else
         n = n + 1
      End If
   Next i
   StrLen = n
End Function

Private Sub Form_Unload(Cancel As Integer)
   bExit = ShowYesNo("系统正在发送SM,如果你退出,则内部待处理的SM无法发送学生家长手中,你确认?")
   Cancel = Not bExit
   If Not Cancel Then
      If Not isDebug Then RemoveFromTray
   End If
End Sub


Private Sub menuExit_Click()
    bntCancel_Click
End Sub



Private Sub Timer_Timer()
  'On Error GoTo laberr
  Dim UserID As String
  Dim Mobile As String
  Dim Msg As String
  
  Dim AttendItemID As Long
  Dim ToUserName As String
  Dim ErrMsg As String
  Dim n As Long
  Dim SMID As Long
  Dim SMItemID As Long
  Dim nWebSm As Long
  Dim tn As Integer
  
  If bInit = False Then Timer.Interval = 0: Exit Sub
     
  OpenCN
  Set rs = cn.Execute("select isnull(count(*),0) from VIEW_WaitingSendSM")
  n = rs(0)
  CloseRS rs
  Set rs = cn.Execute("select isnull(count(*),0) from VIEW_SM")
  nWebSm = rs(0)
  CloseRS rs
  setWebSM nWebSm
  setSysSM n
  CloseCN
     
  If n + nWebSm = 0 Then
  
     setStatus "系统暂无待发送的短信内容"
     Exit Sub
  End If
  
 
  
  bExit = False
  If n > 0 And chkSendAttend.Value = 1 Then
        
        setStatus "正在读取需要发送的考勤短信...."
        OpenCN
        Set rs = cn.Execute("select Top " & OkTC35Number & " * from VIEW_WaitingSendSM order by dtCreate desc")
        tn = 0
        Do While Not bExit And Not rs.EOF
               tn = tn + 1
               SetTC35(tn).Para1 = rs("AttendItemID")
               SetTC35(tn).Para2 = rs("PaterName")
               SetTC35(tn).Para3 = "SysSM"
               SetTC35(tn).Telphone = rs("Mobile")
               SetTC35(tn).Msg = rs("Msg")
               DoEvents
               rs.MoveNext
               If bExit Then Exit Do
        Loop
        CloseRS rs
        CloseCN
        
        If Not bExit And tn > 0 Then
           setStatus "正在发送考勤短信...."
           GroupSendSM SetTC35, tn, bExit
        End If
        
  
  End If
  
  If nWebSm > 0 And chkSendWebSM.Value = 1 And bExit = False Then
        OpenCN
        Set rs = cn.Execute("select Top " & OkTC35Number & " * from VIEW_SM")
        setStatus "正在读取需要发送的WEB短信..."
        tn = 0
        Do While Not rs.EOF And Not bExit
               tn = tn + 1
               SetTC35(tn).Para1 = rs("SMItemID")   '392
               SetTC35(tn).Para2 = rs("SMID")   '62
               SetTC35(tn).Para3 = "WebSM"
               SetTC35(tn).Telphone = rs("ToMobile")  '13148839934
               SetTC35(tn).Msg = rs("Msg") 'test
               DoEvents
               rs.MoveNext
               If bExit Then Exit Do
        Loop
        CloseRS rs
        CloseCN
        
        If Not bExit And tn > 0 Then
            setStatus "正在发送WEB短信..."
            GroupSendSM SetTC35, tn, bExit
        End If
        
  End If
  
  '当前被中断
  If bExit = True Then Call SetSendStatus(True)
  Exit Sub

laberr:
  setStatus "出错:" & Err.Description
  bInit = False
  CloseCN

End Sub


Private Sub setStatus(ByVal s As String)
   StatusBar.Panels(3).Text = "状态:" & s
End Sub

Private Sub setWebSM(ByVal s As String)
   StatusBar.Panels(1).Text = "网络短信:" & s
End Sub


Private Sub setSysSM(ByVal s As String)
   StatusBar.Panels(2).Text = "考勤短信:" & s
End Sub

'从系统数据中装入TC35设备信息
Private Function LoadTC35() As Integer
   Dim rs As ADODB.Recordset
   Dim li As ListItem
   Dim n As Integer
   n = 0
   OpenCN
   Set rs = cn.Execute("select top 8 * from view_TC35")
   With ListView
       .ListItems.Clear
       While Not rs.EOF
             Set li = .ListItems.Add(, "T_" & rs("tc35id"), rs("Port"))
             li.SubItems(1) = rs("ServiceTelphone")
             li.SubItems(3) = rs("SpKind")
             li.SubItems(4) = rs("Prex")
             rs.MoveNext
             n = n + 1
       Wend
   End With
   CloseRS rs
   CloseCN
   LoadTC35 = n
   Exit Function
laberr:
   If Not rs Is Nothing Then CloseRS rs
   CloseCN
   LoadTC35 = -1
   setStatus "装入TC设备信息出错," & Err.Description
End Function

Private Sub SetSendStatus(ByVal b As Boolean)
   
   bntSend.Enabled = b
   bntSTOP.Enabled = Not b
   bntNew.Enabled = b
   bntEdit.Enabled = b
   bntDelete.Enabled = b
   
   menuTC35_Add.Enabled = b
   menuTC35_Edit.Enabled = b
   menuTC35_Delete.Enabled = b
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -