📄 frmeventsetting.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 + -