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

📄 frmeventsetting.frm

📁 都是基于VB所做的程序集合,值得大家作为实践的参考资料.
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmEventSetting 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "事件设置"
   ClientHeight    =   4935
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   4575
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   4935
   ScaleWidth      =   4575
   StartUpPosition =   1  'CenterOwner
   Begin VB.CommandButton btnCancel 
      Caption         =   "取消"
      Height          =   345
      Left            =   3495
      TabIndex        =   21
      Top             =   4440
      Width           =   1065
   End
   Begin VB.CommandButton btnOK 
      Caption         =   "确定"
      Height          =   345
      Left            =   2340
      TabIndex        =   20
      Top             =   4440
      Width           =   1065
   End
   Begin VB.ComboBox cmbRouteIDField 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   19
      Top             =   3810
      Width           =   2040
   End
   Begin VB.ComboBox cmbDataset 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   17
      Top             =   3405
      Width           =   2040
   End
   Begin VB.ComboBox cmbDatasource 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   15
      Top             =   2970
      Width           =   2040
   End
   Begin VB.ComboBox cmbOffsetField 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   13
      Top             =   2565
      Width           =   2040
   End
   Begin VB.ComboBox cmbEventMeasureUnit 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   11
      Top             =   2130
      Width           =   2040
   End
   Begin VB.ComboBox cmbMeasureField 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   9
      Top             =   1725
      Width           =   2040
   End
   Begin VB.ComboBox cmbToMeasureField 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   7
      Top             =   1305
      Width           =   2040
   End
   Begin VB.ComboBox cmbFromMeasureField 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   5
      Top             =   900
      Width           =   2040
   End
   Begin VB.ComboBox cmbDynamicEventType 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   3
      Top             =   510
      Width           =   2040
   End
   Begin VB.ComboBox cmbEventRouteID 
      Height          =   315
      Left            =   2460
      Style           =   2  'Dropdown List
      TabIndex        =   1
      Top             =   105
      Width           =   2040
   End
   Begin VB.Label Label10 
      Caption         =   "RouteID字段"
      Height          =   390
      Left            =   150
      TabIndex        =   18
      Top             =   3840
      Width           =   1980
   End
   Begin VB.Label Label9 
      Caption         =   "Route数据集"
      Height          =   390
      Left            =   150
      TabIndex        =   16
      Top             =   3435
      Width           =   1980
   End
   Begin VB.Label Label8 
      Caption         =   "Route数据源"
      Height          =   390
      Left            =   150
      TabIndex        =   14
      Top             =   3000
      Width           =   1980
   End
   Begin VB.Label Label7 
      Caption         =   "数据定位偏移字段"
      Height          =   390
      Left            =   150
      TabIndex        =   12
      Top             =   2595
      Width           =   1980
   End
   Begin VB.Label Label6 
      Caption         =   "Measure的单位"
      Height          =   390
      Left            =   150
      TabIndex        =   10
      Top             =   2160
      Width           =   1980
   End
   Begin VB.Label Label5 
      Caption         =   "点事件的Measure字段"
      Height          =   390
      Left            =   150
      TabIndex        =   8
      Top             =   1755
      Width           =   1980
   End
   Begin VB.Label Label4 
      Caption         =   "线事件的终止Measure字段"
      Height          =   390
      Left            =   150
      TabIndex        =   6
      Top             =   1335
      Width           =   2250
   End
   Begin VB.Label Label3 
      Caption         =   "线事件的起始Measure字段"
      Height          =   390
      Left            =   150
      TabIndex        =   4
      Top             =   930
      Width           =   2220
   End
   Begin VB.Label Label2 
      Caption         =   "事件类型"
      Height          =   390
      Left            =   150
      TabIndex        =   2
      Top             =   540
      Width           =   1980
   End
   Begin VB.Label Label1 
      Caption         =   "事件表中RouteID字段"
      Height          =   390
      Left            =   150
      TabIndex        =   0
      Top             =   135
      Width           =   1980
   End
End
Attribute VB_Name = "frmEventSetting"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub Init()  '初始化
    Dim objdv As soDatasetVector
    Dim objds As soDataSource
    Dim i As Integer
    
    Set objds = frmMain.SuperWorkspace1.Datasources(frmMain.strSelectParentName)
    If Not objds Is Nothing Then
        Set objdv = objds.Datasets(frmMain.strSelectName)
        If Not objdv Is Nothing Then
            FieldsToCombobox objdv, cmbEventRouteID
            cmbEventRouteID.ListIndex = 0
            
            cmbDynamicEventType.AddItem "PointEvent"
            cmbDynamicEventType.AddItem "LineEvent"
            cmbDynamicEventType.ListIndex = 0
            
            FieldsToCombobox objdv, cmbFromMeasureField
            cmbFromMeasureField.ListIndex = 0
            cmbFromMeasureField.Enabled = False
            
            FieldsToCombobox objdv, cmbToMeasureField
            cmbToMeasureField.ListIndex = 0
            cmbToMeasureField.Enabled = False
            
            FieldsToCombobox objdv, cmbMeasureField
            cmbMeasureField.ListIndex = 0
            
            cmbEventMeasureUnit.AddItem "度"
            cmbEventMeasureUnit.AddItem "毫米"
            cmbEventMeasureUnit.AddItem "厘米"
            cmbEventMeasureUnit.AddItem "英寸"
            cmbEventMeasureUnit.AddItem "分米"
            cmbEventMeasureUnit.AddItem "英尺"
            cmbEventMeasureUnit.AddItem "码"
            cmbEventMeasureUnit.AddItem "米"
            cmbEventMeasureUnit.AddItem "千米"
            cmbEventMeasureUnit.AddItem "英里"
            cmbEventMeasureUnit.Text = "米"
            
            FieldsToCombobox objdv, cmbOffsetField
            
            For i = 1 To frmMain.SuperWorkspace1.Datasources.Count
                cmbDatasource.AddItem frmMain.SuperWorkspace1.Datasources(i).Alias
            Next i
            cmbDatasource.ListIndex = 0
            
            Set objds = frmMain.SuperWorkspace1.Datasources(cmbDatasource.Text)
            If Not objds Is Nothing Then
                DataSetsToCombobox objds, cmbDataset
                If cmbDataset.ListCount > 0 Then cmbDataset.ListIndex = 0
                
                Set objdv = objds.Datasets(cmbDataset.Text)
                If Not objdv Is Nothing Then
                    FieldsToCombobox objdv, cmbRouteIDField
                    cmbRouteIDField.ListIndex = 0
                End If
            End If
        End If
    End If

End Sub

Private Sub FieldsToCombobox(objdataset As soDatasetVector, cmblist As ComboBox)  '把数据集的字段集合显示到combobox
    Dim i As Integer
    For i = 1 To objdataset.FieldCount
        cmblist.AddItem objdataset.GetFieldInfo(i).Name
    Next i
End Sub

Private Sub DataSetsToCombobox(objds As soDataSource, cmblist As ComboBox)
    Dim i As Integer
    
    For i = 1 To objds.Datasets.Count
        If objds.Datasets(i).Type = scdLineM Then
            cmblist.AddItem objds.Datasets(i).Name
        End If
    Next i
End Sub

Private Sub btnCancel_Click()
    Unload Me
End Sub

Private Sub btnOK_Click()
    ApplySetting
    Unload Me
End Sub

Private Sub cmbDynamicEventType_Click()
    If cmbDynamicEventType.Text = "LineEvent" Then
        cmbFromMeasureField.Enabled = True
        cmbToMeasureField.Enabled = True
        cmbMeasureField.Enabled = False
    Else
        cmbFromMeasureField.Enabled = False
        cmbToMeasureField.Enabled = False
        cmbMeasureField.Enabled = True
    End If
End Sub

Private Sub Form_Load()
    Call Init
End Sub

Private Sub ApplySetting()
    Dim objDynamicEvent As soDynamicEventLocator
    Dim objds As soDataSource
    Dim objdv As soDatasetVector
    Dim objRouteDv As soDatasetVector
    
    Set objds = frmMain.SuperWorkspace1.Datasources(frmMain.strSelectParentName)
    Set objdv = objds.Datasets(frmMain.strSelectName)
    Set objDynamicEvent = objdv.CreateDynamicEvent
    
    Set objds = frmMain.SuperWorkspace1.Datasources(cmbDatasource.Text)
    Set objRouteDv = objds.Datasets(cmbDataset.Text)
    
    objDynamicEvent.DynamicEventType = cmbDynamicEventType.ListIndex + 1
    If cmbDynamicEventType.Text = "LineEvent" Then
        objDynamicEvent.FromMeasureField = cmbFromMeasureField.Text
        objDynamicEvent.ToMeasureField = cmbToMeasureField
    Else
        objDynamicEvent.MeasureField = cmbMeasureField.Text
    End If
    objDynamicEvent.RouteDataset = objRouteDv
    objDynamicEvent.RouteIDField = cmbRouteIDField.Text
    objDynamicEvent.OffsetField = cmbOffsetField.Text
    objDynamicEvent.EventRouteIDField = cmbEventRouteID.Text
End Sub

⌨️ 快捷键说明

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