Di artikel sebelumnya, ada sedikit penjelasan tentang pencarian objek. Di artikel kali ini, metode pencarian tidak berdasarkan objek di peta. Objek dicari di tabel atribut tanpa mengetahui posisi objek di peta. Untuk melakukannya digunakan class
MapInfo.Data.SearchInfoFactory.SearchWhere
Update data attribut
Pertama kita gunakan class SearchInfoFactory untuk menentukan objek yang dicari. Setelah feature dari objek yang dicari ditemukan, digunakan method UpdateFeature
contoh vb:
Private Sub UpdateNoreg(ByVal idlama As String, ByVal idbaru As String)
Dim MIcon As New MapInfo.Data.MIConnection
Dim si As SearchInfo
Try
si = MapInfo.Data.SearchInfoFactory.SearchWhere("NO_REG = '" & idlama & "'")
MIcon.Open()
Dim mitable As Table
mitable = MapInfo.Engine.Session.Current.Catalog.GetTable("POSISI_STRATEGIS")
Dim fl As FeatureLayer = New FeatureLayer(mitable)
Dim irfc As IResultSetFeatureCollection
irfc = MapInfo.Engine.Session.Current.Catalog.Search(mitable, si)
If irfc.Count <> 0 Then
Dim idfc As IDynamicFeatureCollection = CType(irfc, IDynamicFeatureCollection)
Dim f As Feature = idfc.Item(0)
f("NO_REG") = idbaru
fl.Table.UpdateFeature(f, True)
End If
Catch ex As Exception
Finally
If MIcon.State = Data.ConnectionState.Open Then
MIcon.Close()
End If
End Try
End Sub
SearchInfoFactory.SearchWhere(“NO_REG = ‘” & idlama & “‘”) maksudnya mencari value idlama di kolom ‘NO_REG’ dari tabel atribut peta POSISI_STRATEGIS. Setelah objek ditemukan (If irfc.Count <> 0) dilakukan perubahan nilai dari kolom NO_REG. (f(“NO_REG”) = idbaru)
fl.Table.UpdateFeature(f, True) untuk melakukan perubahan di objek yang terseleksi, parameter ‘True’ menunjukkan tidak semua kolom diupdate, dalam hal ini hanya kolom ‘NO_REG’ yang di update.
Jangan lupa menambahkan kode berikut di baris pertama
Imports MapInfo.Data Imports MapInfo.Mapping
Ditulis menggunakan MapXtreme 6.8

Komentar Terbaru