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

📄 form1.frm

📁 用于车辆监控数据的分析
💻 FRM
字号:
VERSION 5.00
Object = "{058ADF50-1120-11D0-80D0-0000F73D691E}#1.0#0"; "mexdemo25.ocx"
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   6030
   ClientLeft      =   165
   ClientTop       =   735
   ClientWidth     =   8535
   LinkTopic       =   "Form1"
   ScaleHeight     =   6030
   ScaleWidth      =   8535
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton Command2 
      Caption         =   "Command2"
      Height          =   495
      Left            =   4080
      TabIndex        =   5
      Top             =   4080
      Width           =   1695
   End
   Begin VB.CommandButton Command1 
      Caption         =   "送货情况分析new"
      Height          =   495
      Left            =   4080
      TabIndex        =   4
      Top             =   5040
      Width           =   1695
   End
   Begin VB.CommandButton SuspiciousCheck 
      Caption         =   "可疑送货点分析"
      Height          =   495
      Left            =   1920
      TabIndex        =   3
      Top             =   5040
      Width           =   1695
   End
   Begin VB.CommandButton CustomerCheck 
      Caption         =   "送货点分析"
      Height          =   495
      Left            =   1920
      TabIndex        =   2
      Top             =   4080
      Width           =   1695
   End
   Begin MapEngineLib.SpaDB SpaDB1 
      Height          =   375
      Left            =   7920
      TabIndex        =   1
      Top             =   0
      Width           =   615
      _Version        =   65536
      _ExtentX        =   1085
      _ExtentY        =   661
      _StockProps     =   0
   End
   Begin MapEngineLib.CompoundMap CompoundMap1 
      Height          =   3015
      Left            =   720
      TabIndex        =   0
      Top             =   600
      Width           =   6135
      _Version        =   65536
      _ExtentX        =   10821
      _ExtentY        =   5318
      _StockProps     =   0
   End
   Begin VB.Menu report 
      Caption         =   "统计报表"
   End
   Begin VB.Menu distance 
      Caption         =   "用户位置信息"
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim j        As Integer
Dim i        As Integer
Dim str1     As String
Dim dataproperty  As Boolean

Private Sub Command1_Click()

'按照给客户留的接口,得到车号,车辆数目,送货点的位置,送货点数目

'* Step 1*

'根据不同的车号将表重读,得到按车号不同排的几张表,按照车号如GV2data来命名表
'MsgBox carID(1)
Dim cnn     As New ADODB.Connection
Dim rs_Tabs As ADODB.Recordset
Dim flag    As Boolean
Set cnn = adoConn
'
''******判断用于生成报表的表是否在数据库中存在**********
'   Set rs_Tabs = cnn.OpenSchema(adSchemaTables) '创建数据库记录集为了得到数据库中所有表名
'   Do While Not rs_Tabs.EOF
'      For i = 1 To carCount
'      If carID(i) = rs_Tabs!TABLE_NAME Then
'         flag = True
'         MsgBox flag
'         Exit Do
'      End If
'      rs_Tabs.MoveNext
'      Next
'   Loop
'   rs_Tabs.Close

'如果表没有创建
If flag = False Then
Dim rs_temp As New ADODB.Recordset
   
   rs_temp.CursorLocation = adUseClient
'   create table [a1] ([vehicleID] String,[datetime] Date,[lat] double,[lon] double,[speed] byte, [state] string)
   For i = 1 To carCount
   str1 = "create table " & carID(i) & " ( [vehicleID] String,[datetime] Date,[lat] double,[lon] double,[speed] byte,[state] string)"
   MsgBox str1
   rs_temp.Open str1, adoConn, adOpenDynamic, adLockOptimistic
   Next i
End If
   
'如果表已经创建
If flag = True Then



End If

'*Step2* 按照车号判断记录属于那个表的记录,将该记录放到对应的表中
'*模拟数据输入过程,读一条数据 = 得到一条车辆返回信息

'留接口输入每一条记录 vehicleID , datetime ,lat ,lon ,speed
' rs1.CursorLocation = adUseClient
'    str1 = "select * from data "
'    rs1.Open str1, adoConn, adOpenDynamic, adLockOptimistic


Do While Not rs.EOF
    '读数据
    lat = rs.Fields("lat").Value
    log = rs.Fields("lon").Value
    vehicleID = rs.Fields("vehicleID").Value
    speed = rs.Fields("speed").Value
    curTime = rs.Fields("datetime").Value
'    Debug.Print vehicleID

    '送货分析判断过程中数据的预处理
    For j = 1 To userCount
    
    If GetDistance(lat, log, userLat(j), userLon(j)) < 100 Then
    dataproperty = True
    End If
    
    Next
    
   '写数据 , 之前先要判断属于那张表, 按车号来判断
    For i = 1 To carCount

    If carID(i) = vehicleID And dataproperty = True Then
   
   '添加数据,模拟动态添加过程
        rs1.CursorLocation = adUseClient
        str1 = "select * from " & carID(i)
        rs1.Open str1, adoConn, adOpenDynamic, adLockOptimistic
        rs1.AddNew
        rs1!DateTime = curTime
        rs1!vehicleID = vehicleID
        rs1!speed = speed
        rs1!lat = lat
        rs1!lon = log
        rs1.Update
        rs1.MoveLast
        rs1.Close
        
        
    End If

    Next
    
    
     Call Distinguish(vehicleID)
     dataproperty = False
     rs.MoveNext
Loop

'    If rs1.AbsolutePosition = rs1.RecordCount Then
'    rs1.Close
'    MsgBox ("送货点分析结束")
'    End If
End Sub

Private Sub Command2_Click()
'*************
rs.Close
rs.Open "select * from 'db' where  XType = 'U' AND  name='GV2'", adoConn
If rs.Fields(0) = "1" Then
'   conn.Execute "drop table 表名"
MsgBox "D"
End If


'If rs.Fields(0) = "1" Then
'MsgBox "d"   '表存在,想怎么处理都可以
'Else
'   '表不存在,就不要费心了
'End If
rs.Close

'*************

Dim rr As New ADODB.Recordset
str1 = "select * from sysobjects where  XType = 'U' AND  name= test "
rr.Open str1, adoConn, adOpenDynamic, adLockOptimistic
If rr.RecordCount > 0 Then
MsgBox "hi"
End If
'select * from sysobjects where  XType = 'U' AND  name=表名
'if @@rowcounr>0 就存在
'   drop table 表名
End Sub

'用户点送达状态判断过程
Private Sub CustomerCheck_Click()
  
'将数据集默认的服务器游标改为客户端游标
  
    rs1.CursorLocation = adUseClient
    str1 = "select * from customercheck  "
    rs1.Open str1, adoConn, adOpenDynamic, adLockOptimistic


Do While Not rs.EOF
    lat = rs.Fields("lat").Value
    log = rs.Fields("lon").Value
    vehicleID = rs.Fields("vehicleID").Value
    speed = rs.Fields("speed").Value
    curTime = rs.Fields("datetime").Value
    Debug.Print vehicleID
    
    '写新表
    rs1.AddNew
    rs1!DateTime = curTime
    rs1!vehicleID = vehicleID
    rs1!speed = speed
    rs1!lat = lat
    rs1!lon = log
    rs1.Update
    rs1.MoveLast
    rs1.Close
    'MsgBox speed

    '进行送货状态判别
 
    Call Distinguish
    
    'MsgBox userLon(0) & "" & userLat(0)
    rs.MoveNext
  
Loop
    If rs1.AbsolutePosition = rs1.RecordCount Then
    rs1.Close
    MsgBox ("送货点分析结束")
    End If
End Sub

'进行接口变量值的初始化

Private Sub Form_Load()
  
    carCount = 3
    ReDim carID(carCount)
'    ReDim work(carCount)
    carID(1) = "GV2"
    carID(2) = "GV3"
    carID(3) = "GV7"

    userCount = 3
    ReDim userLon(userCount)
    ReDim userLat(userCount)

    userLon(1) = 116.226425170898
    userLat(1) = 39.8890991210938
    userLon(2) = 116.246887207031
    userLat(2) = 39.8713188171387
    userLon(3) = 116.232467651367
    userLat(3) = 39.9284896850586



    SpaDB1.Visible = False
    CompoundMap1.Visible = False
'    For i = 1 To carCount
'    work(i) = False '默认工作状态
'    Next i
    
    '打开源数据库表
    Call OpenDb
    rs.CursorLocation = adUseClient
    str1 = "select * from dbo_GPSStatus "
    rs.Open str1, adoConn, adOpenDynamic, adLockOptimistic

End Sub

Private Sub distance_Click()
    Dialog.Show
End Sub


Private Sub report_Click()
    
    Dialog1.Show
    'strsql = "select * from dbo_GPSStatus"
    'DataReport1.Show

End Sub

' 可疑送货点状态的判断过程
Private Sub SuspiciousCheck_Click()
 
   Dim rs_temp As New ADODB.Recordset
   
   rs_temp.CursorLocation = adUseClient
'   create table [a1] ([vehicleID] String,[datetime] Date,[lat] double,[lon] double,[speed] byte, [state] string)
   For i = 1 To carCount
   str1 = "create table " & carID(i) & "Sus" & " ( [vehicleID] String,[datetime] Date,[lat] double,[lon] double,[speed] byte,[state] string)"
   MsgBox str1
   rs_temp.Open str1, adoConn, adOpenDynamic, adLockOptimistic
   Next i

'   rs_temp.Close
Do While Not rs.EOF
    '读数据
    lat = rs.Fields("lat").Value
    log = rs.Fields("lon").Value
    vehicleID = rs.Fields("vehicleID").Value
    speed = rs.Fields("speed").Value
    curTime = rs.Fields("datetime").Value
'    Debug.Print vehicleID

    '送货分析判断过程中数据的预处理
 
    
   '写数据 , 之前先要判断属于那张表, 按车号来判断
    For i = 1 To carCount

    If carID(i) = vehicleID Then
   
   '添加数据,模拟动态添加过程
        
        rs_temp.CursorLocation = adUseClient
        str1 = "select * from " & carID(i) & "Sus"
        rs_temp.Open str1, adoConn, adOpenDynamic, adLockOptimistic
        rs_temp.AddNew
        rs_temp!DateTime = curTime
        rs_temp!vehicleID = vehicleID
        rs_temp!speed = speed
        rs_temp!lat = lat
        rs_temp!lon = log
        rs_temp.Update
        rs_temp.MoveLast
        rs_temp.Close
        
        
    End If

    Next
    
    
     Call Suspicious(vehicleID)
    
     rs.MoveNext
Loop
'    If rs_temp.AbsolutePosition = rs_temp.RecordCount Then
'    rs_temp.Close
'    MsgBox ("可疑送货点分析结束")
'    End If
End Sub

⌨️ 快捷键说明

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