阅读:1240回复:0
Example in Visual Basic
Public Sub SearchEx(txtCity As String, txtState As String)
Dim lyrCity As Layer Dim dsCity As Dataset Dim dsState As Dataset Dim objFindResult As FindResult Dim intNumCols As Integer Dim intNumRows As Integer Dim counter As Integer Dim firstcounter As Integer ' This file ships as sample data with MapX. Set lyrCity = Map1.Layers("US Minor Cities") Set lyrState = Map1.Layers("USA") ' Add the datasets Set dsCity = Map1.Datasets.Add(miDataSetLayer, lyrCity) Set dsState = Map1.Datasets.Add(miDataSetLayer, lyrState) ' Set the city dataset to be the find dataset Set lyrCity.Find.FindDataset = dsCity Set lyrCity.Find.FindField = dsCity.Fields("city") ' Set the state dataset to be the refining dataset Set lyrCity.Find.RefineLayer = lyrState Set lyrCity.Find.RefineDataset = dsState Set lyrCity.Find.RefineField = dsState.Fields("state") Set objFindResult = lyrCity.Find.SearchEx(txtCity, txtState) If objFindResult.MultipleMatches = True Then For Each objMatchCandidate In objFindResult.Matches firstcounter = firstcounter + 1 List1.AddItem objMatchCandidate.Name intNumRows = objFindResult.Matches.Count intNumCols = dsCity.Fields.Count CityGrid.Cols = intNumCols CityGrid.Rows = intNumRows For counter = 1 To intNumCols CityGrid.Row = firstcounter - 1 CityGrid.Col = counter - 1 CityGrid.Text = dsCity.Value(objMatchCandidate.FeatureID, counter) Next Next Else List1.AddItem objFindResult.MatchedFeature.Name intNumCols = dsCity.Fields.Count CityGrid.Cols = intNumCols For counter = 1 To intNumCols CityGrid.Col = counter - 1 CityGrid.Text = dsCity.Value( objFindResult.MatchedFeature.FeatureID, counter) Next End If End Sub |
|
|