Помогите с примером формы для просмотра аттрибутив

0 голосов
спросил 24 Ноя, 08 от Evgeniy2701 (800 баллов) в категории Программные продукты Esri
    Подскажите пожалуйста - нужна формочка для просмотра аттрибутивной таблицы, где есть числовые,текстовые и логические поля. мне бы примерчик какой нито! я их еще никогда не использовал, а хочется, чтоб красиво было image

10 Ответы

0 голосов
ответил 19 Фев, 09 от ldokov (580 баллов)
Каким образом планируется извлекать данные ??? Через кнопку на панели инструментов или идентификацией объекта напосредственно с карты ???
0 голосов
ответил 19 Фев, 09 от Evgeniy2701 (800 баллов)
В принципе я пока на любой согласен. Но лучше если наводишь какой-нить инструмент на объект, щелкаешь и получаешь это окно. Ну типа "i" в ArcView 3.., только в красивом окне, где можно сделать русские заголовки полей и расставить их в нужной последовательности
0 голосов
ответил 19 Фев, 09 от Worker (22,480 баллов)
А что если HTML popup использовать в 93? Красиво получится, и программировать не нужно.
0 голосов
ответил 19 Фев, 09 от Evgeniy2701 (800 баллов)
    К сожалению я даже не представляю как это вообще делается. Может научите, если это не очень сложно и не влом image
0 голосов
ответил 19 Фев, 09 от Worker (22,480 баллов)
http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?id=224&pid=211&topicname=Setting_HTML_pop-up_properties_for_feature_layers.
В таблице содержания щелкните два раза на файле слоя, перейдите на последнюю закладку HTML Popup. Там настройте все, как Вам нужно, а затем используя инструмент HTML popup на панели Tools в ArcMap наводите на объект слоя, для которого произвели все настройки, и щелкаете. Будет выведено окно с тем, что вы настроили.

Если методом тыка не разберетесь, посмотрите в справке по продукту, там очень подробно все описано. Удачи!
0 голосов
ответил 19 Фев, 09 от Evgeniy2701 (800 баллов)
    у меня нет закладки HTML Popup. Может модуль какой надо? У нас только ArcView
0 голосов
ответил 19 Фев, 09 от Worker (22,480 баллов)
ArcView GIS 3.2 или ArcGIS Desktop 93/92?
0 голосов
ответил 19 Фев, 09 от Evgeniy2701 (800 баллов)
Мои вкладки "свойства слоя":
Общие, источник, выборка,Отображение, символы, поля,определяющий запрос,надписи и Соединения & связи.
Это все...
0 голосов
ответил 19 Фев, 09 от Worker (22,480 баллов)
HTML popup появился только в версии 93. Если у вас 9.2, то ищите другие способы, например, гиперссылки, или напишите свой инструмент пользовательской идентификации. На сайте edn.esri.com много шаблонов и примеров.
0 голосов
ответил 19 Фев, 09 от ldokov (580 баллов)
Листин взят из Help-а, по крайней мере на версии 8.3 работает.

Правой клавишей мыша тыкаем в любое место на панели инструментов, в контекстном меню выбираем Customize... далее вкладку Commands в ней выбираем UIControls, внизу формы вбираем где будет храниться инструмент (либо в текущем проекте, либо в Normal.mxt - т.е. будет по умолчанию врубаться в любом новом проекте), далее кнопка New UIControl, далее выбираем из 4-ех вариантов нужный (в данном случае UIToolControl), давим Create, появляется новый инструмент со стандартным названием (название соответственно можно поменять, если есть необходимость), далее
давим левой кнопкой мыши на название и тянем в любое место на панели инструментов, далее правой кнопкой мыши на новый инструмент и выбираем View Source - переходим в редактор VBA, далее копируем низлежащий текст программы и испытываем оную.
В результате тычка левой клавишей мыши на некоторый объект на карте должна выползти месседжа о названии слоя в коем данный объект находится и некоторое его имя или идентификатор.
Соответственно в карте должен быть хотя бы один слой !!!

Private Sub UIToolControl1_MouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long, ByVal y As Long)

Dim pMxApp As IMxApplication
Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pIdentify As IIdentify
Dim pIDArray As IArray
Dim pFeatIdObj As IFeatureIdentifyObj
Dim pIdObj As IIdentifyObj
Dim tol As Long
Dim pEnv As IEnvelope
Dim r As tagRECT

Set pMxApp = Application
Set pMxDoc = ThisDocument
Set pMap = pMxDoc.FocusMap
Set pIdentify = pMap.Layer(0)
tol = pMxDoc.SearchTolerancePixels

'consruct a small rectangle out of the x,y coord and the document's pixel tolerance
r.Left = x - tol * 2 'upper left x, top left is 0,0
r.Top = y - tol * 2 'upper left y, top left is 0,0
r.Right = x + tol * 2 'lower right x, top left is 0,0
r.bottom = y + tol * 2 'lower right y, top left is 0,0

'Tranform the device rectange into a geographic rectangle via the display transformation

Set pEnv = New Envelope

pMxApp.Display.DisplayTransformation.TransformRect pEnv, r, esriTransformPosition + esriTransformToMap

'setup the spatial reference on the newly hydrated envelope
Set pEnv.SpatialReference = pMap.SpatialReference

'identify with the envelope
Set pIDArray = pIdentify.Identify(pEnv)

'Get the FeatureIdentifyObject
If Not pIDArray Is Nothing Then

Set pFeatIdObj = pIDArray.Element(0)
Set pIdObj = pFeatIdObj
pIdObj.Flash pMxApp.Display

'Report info from FeatureIdentifyObject
MsgBox "Слой: " & pIdObj.Layer.Name & vbNewLine & "Объект: " & pIdObj.Name

Else

MsgBox "Не выбрано ни одного объекта "

End If

End Sub

Если заинтересует далее, то лучше по электронке, а не в форуме, дабы на засорять эфир ...
ldokov@mail.ru - Денис
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...