|
 |
|
Dim objLayer as soLayer |
|
Dim data As soDatasetVector
Set objLayerMove = SuperMap1.Layers(Combo1.Text) '获取被浏览的图层
Set data = objLayerMove.dataset '获取图层的数据集
Set recMove = data.Query("", False) '获取该数据集的全部记录 |
|
|
|
Private Sub SuperMap1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
SuperMap1.Refresh
Dim rec As soRecordset
Set rec = SuperMap1.Selection.ToRecordset(False) 'save the selection to recordset
If rec Is Nothing Then
LstView1.ListItems.Clear
Combo1.ListIndex = -1
Exit Sub
End If
rec.MoveFirst
LstView1.ListItems.Clear
Combo1.ListIndex = -1
Combo1.Text = SuperMap1.Selection.dataset.Name
Dim recFieldN As Integer
For recFieldN = 1 To rec.FieldCount
LstView1.ListItems.Add , , rec.GetFieldInfo(recFieldN).Name
If Not IsNull(rec.GetFieldValue(recFieldN)) Then
LstView1.ListItems(LstView1.ListItems.Count).SubItems(1) = rec.GetFieldValue(recFieldN)
End If
Next recFieldN
End Sub |
|
|
|
|
|
移动记录是在当前数据集的当前记录位置的基础上来进行前进或后退的移动,重新定位记录。定位成功后读取记录属性,并把该记录的目标显示出来。下面分别介绍了"移向第一个记录"、"移向前一个记录"、"移向下一个记录"、"移向最后一个记录"的具体方法,在重新定位后再显示数据及对象。(假设当前的记录定位在中间,即前后都有记录) |
|
"移向第一个记录" : recMove.MoveFirst |
|
"移向前一个记录" : recMove.MovePrev |
|
"移向下一个记录" : recMove.MoveNext |
|
"移向最后一个记录": recMove.MoveLast |
|
显示属性数据和几何对象: |
|
Set objLayer = SuperMap1.Layers(Combo1.List(Combo1.ListIndex))
Set data = objlayer.dataset
Set SuperMap1.Selection.dataset = data
SuperMap1.Selection.RemoveAll
SuperMap1.Selection.Add recMove.GetID '高亮显示选中记录
'把地图的中心定位到几何对象的中心
Dim Obj As soGeometry
Set Obj = recMove.GetGeometry()
If Not Obj Is Nothing Then
SuperMap1.EnsureVisibleGeometry Obj, 1 '自动把视图大小放大到选中对象的视图大小
End If
SuperMap1.Refresh |