Постановка задачи ->
Есть слой точек. Нужно отразить метки путем объединения нескольких полей (>10). При этом для отдельных полей должен изменяться цвет. Все это реализуется в ArcMap через vbscript. А как это сделать в VB? Просто соединить поля получается. А прикруть тэги цвета нет. Ниже пример кода для двух полей.
Private Sub ICommand_OnClick()
Dim pMxDoc As IMxDocument
Set pMxDoc = m_pApp.Document
Dim pGeoFeatureLayer As IGeoFeatureLayer
'Check if the layer can be labelled
If Not TypeOf pMxDoc.FocusMap.Layer(0) Is IGeoFeatureLayer Then Exit Sub
Set pGeoFeatureLayer = pMxDoc.FocusMap.Layer(0)
If pGeoFeatureLayer.DisplayAnnotation = False Then
Dim pLabelProps As ILabelEngineLayerProperties
Dim pAnnoPropsCollection As IAnnotateLayerPropertiesCollection
Dim str1, exp1 As String
Set pAnnoPropsCollection = pGeoFeatureLayer.AnnotationProperties
pAnnoPropsCollection.QueryItem 0, pLabelProps
pGeoFeatureLayer.DisplayAnnotation = True
Set pLabelProps.ExpressionParser = New AnnotationVBScriptEngine
exp1 = _
"Function FindLabel ( [Q] ,[W]) " & vbCrLf & _
"str1 = chr(45) " & vbCrLf & _
" FindLabel = [Q] & str1 & [W] " & vbCrLf & _
"End Function "
pLabelProps.IsExpressionSimple = False
pLabelProps.Expression = exp1
Else
pGeoFeatureLayer.DisplayAnnotation = False
End If
'refresh the map
pMxDoc.ActiveView.PartialRefresh esriDPAnnotation, Nothing, Nothing
End Sub
Можно ли сделать чтобы н-р поле Q выводилось красным, а поле W синим?