Русские имена полей вокне редактирования атрибутов

0 голосов
спросил 12 Дек, 06 от dwarwood (2,620 баллов) в категории Программные продукты Esri
Всем добрый день.
И вопрос:
можно ли сделать так, чтобы в окне редактирования атрибутов (панель редактирования\Attributes) выводились алиасы по-русски, а не имена полей.
 
Юзеры требуют по-русски. Ваять форму на VBA только из-за этого - не радует.

11 Ответы

0 голосов
ответил 13 Дек, 06 от dwarwood (2,620 баллов)

сказал бы кто чего, хотя бы "скорее всего не можно"

видел в книге "Редактирование в ArcMap" скриншот этого окна с как с английскими, так и с русскими названиями, но намеков как сделать - не нашел

0 голосов
ответил 13 Дек, 06 от Mitrich (13,680 баллов)
если вы алиасы на русском написали в пропертях слоя (закладка Fields) то все должно быть хорошо. У вас не так? Уточните...
0 голосов
ответил 13 Дек, 06 от dwarwood (2,620 баллов)

Уточняю. Написал, давно уже, несколько раз, все плохо...

В окне Identify Result алиасы появляются, в окне Attributes - нет.

0 голосов
ответил 13 Дек, 06 от Mitrich (13,680 баллов)
тогда попробуйте прописать алиасы в базе данных (если у вас шейпы - дело швах).
0 голосов
ответил 13 Дек, 06 от dwarwood (2,620 баллов)
именно что шейпы.
 но все равно спасибо.
0 голосов
ответил 18 Дек, 06 от dwarwood (2,620 баллов)

интересная вещь выяснилась:

  Dim pField As IField
  Debug.Print pField.AliasName
 
для шейпов выводит то же значение, что pField.Name, независимо от того что алиас присвоен
в хелпе по IField.AliasName написано то же самое:
 
Remarks

This is only supported on fields from object classes and feature classes that are registered with either a personal geodatabase or enterprise geodatabase.  For fields coming from other data sources (shapefiles, coverages, etc) the AliasName will be the same string as the field name.

 .. НО ТОГДА вопрос - алиас где то хранится и в окне Identify Result он выводится. КАК его достать, программно? Нич-чего не понимаю.
 
0 голосов
ответил 19 Дек, 06 от Mitrich (13,680 баллов)
Если я правильно у себя нашел, то вот кусок кода по данной теме
Вообщем все надо брать из FieldInfo

  Dim pFeatureClass As esriCore.IFeatureClass
 
 Set pLayerFields = pLayer 'qi
 
For i = 0 To pFeature.Fields.FieldCount - 1

  
On Error Resume Next
  Set pFieldInfo = pLayerFields.FieldInfo(i)
 
  CurrAlias = pLayerFields.FieldInfo(i).Alias
  CurrFldName = pFeature.Fields.Field(i).Name
0 голосов
ответил 19 Дек, 06 от dwarwood (2,620 баллов)

вот ведь блин, и правда FieldInfo. как то он у меня вылетел из головы

спасибо, пошел пробовать.
 
// но непонятно, зачем тогда Field.AliasName нужен и когда он должен работать. попробовал на базе геоданных - тоже не сработал.  правда, это была первая созданная мною база, раньше только с шейпами работал, может чего не так сделал
0 голосов
ответил 19 Дек, 06 от dwarwood (2,620 баллов)

технический вопрос: есть pFeature As IFeature, как из нее достать слой IFeatureLayer? у pFeature есть .Class as IObjectClass, но он к слою не приводится..

вопрос может и дурацкий, но я с этими Query Interface'ами после программирования на C# пока очень слабо дружу..

0 голосов
ответил 19 Дек, 06 от Mitrich (13,680 баллов)
методом перебора

      Set pID = pGeoLayer

      'pID.Scale = m_phook.ActiveView.ScreenDisplay.DisplayTransformation.ScaleRatio

      Set pIDArray = pID.Identify(pGeom, Nothing) '(pSrchEnv, Nothing)

     
      Dim ipFeatIdObj As IFeatureIdentifyObj
      Dim pRowObj As IRowIdentifyObject
      'Dim pFeature As IFeature
     
      ' Add the features to the collection and clear the current ID array
      If Not pIDArray Is Nothing Then
        Dim j As Long

        For j = 0 To pIDArray.Count - 1
          If TypeOf pIDArray.Element(j) Is IFeatureIdentifyObj Then
            Set ipFeatIdObj = pIDArray.Element(j)
              Set pRowObj = ipFeatIdObj
              Set pFeature = pRowObj.Row
              pFeaturesSelected.Add pFeature
              pLayersSelected.Add pGeoLayer 'pLayer ''myinsert
          End If
        Next j
        pIDArray.RemoveAll
       
      End If
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...