GxDialog в VBA для ArcGIS
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
GxDialog в VBA для ArcGIS
Здравствуйте!
Разбираюсь с языком программирования Visual Basic for Applications для ArcGIS 9.3. Сейчас пытаюсь разобраться с объектом GxDialog. Как я понимаю, это диалоговое окно определённого типа, но вот описания этих типов пока не нашёл.
В общем, у меня вопрос пока небольшой: объясните, пожалйуста, своими словами, как вы понимаете, что такое GxDialog?
Разбираюсь с языком программирования Visual Basic for Applications для ArcGIS 9.3. Сейчас пытаюсь разобраться с объектом GxDialog. Как я понимаю, это диалоговое окно определённого типа, но вот описания этих типов пока не нашёл.
В общем, у меня вопрос пока небольшой: объясните, пожалйуста, своими словами, как вы понимаете, что такое GxDialog?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: GxDialog в VBA для ArcGIS
Обычное окно открытия файлов (в ArcGIS - слоев /Layer/ ). В ArcMap вызывается иконкой в виде желтого ромбика с черным крестиком.
Вот описание: http://edndoc.esri.com/arcobjects/9.2/C ... Dialog.htm
Подумайте, стоит ли разбираться с VBA, если его уже в ArcGIS 10 нет. Или вас перспектива не интересует?
Вот описание: http://edndoc.esri.com/arcobjects/9.2/C ... Dialog.htm
Подумайте, стоит ли разбираться с VBA, если его уже в ArcGIS 10 нет. Или вас перспектива не интересует?
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: GxDialog в VBA для ArcGIS
Спасибо за описание.Bishop писал(а):Вот описание: http://edndoc.esri.com/arcobjects/9.2/C ... Dialog.htm
Ну меня GxDialog вот зачем интересует: в ArcGIS 9.3 (ArcScene) нужно задать путь к таблице, откуда будут браться данные. А в проекте, с которым я сейчас пытаюсь работать, это реализовано через GxDialog. Но там, насколько я понимаю, можно поставить фильтр GxFilterTables, чтобы в окне предлагались для выбора только таблицы. Но там можно выбрать именно таблицу как она есть, а мне нужно, чтобы данные выбирались из нескольких связанных таблиц. Вот и думаю, можно ли это реализовать через GxDialog или же для этого нужно использовать другой объект?Bishop писал(а):Обычное окно открытия файлов (в ArcGIS - слоев /Layer/ ). В ArcMap вызывается иконкой в виде желтого ромбика с черным крестиком.
Сейчас я работаю (а точнее, как я уже написал выше, пытаюсь работатьBishop писал(а):Подумайте, стоит ли разбираться с VBA, если его уже в ArcGIS 10 нет. Или вас перспектива не интересует?

- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: GxDialog в VBA для ArcGIS
Для вашего варианта - GxDialog может и поможет при таком сценарии: пользователь выбирает любую из связанных таблиц и нажимает "Открыть". Далее диалог закрывается, Вы в своем коде смотрите, - действительно ли они связанные. Если нет - либо диалог ошибки, либо опять открываете GxDialog, иначе процесс открытия продолжается.
Вариант написания собственного фильтра, здесь ИМХО не поможет, ибо этот подход ориентирован на один источник, а у Вас они связанные таблицы.
Если таблицы лежат в БД - то по типовому названию можно фильтровать.
Под ArcGIS Desctop можно программировать под C++, C#, Java.Net, VB.Net, Python (если ничего не забыл).
Вариант написания собственного фильтра, здесь ИМХО не поможет, ибо этот подход ориентирован на один источник, а у Вас они связанные таблицы.
Если таблицы лежат в БД - то по типовому названию можно фильтровать.
Под ArcGIS Desctop можно программировать под C++, C#, Java.Net, VB.Net, Python (если ничего не забыл).
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: GxDialog в VBA для ArcGIS
Можно этот момент поподробнее?Bishop писал(а):Если таблицы лежат в БД - то по типовому названию можно фильтровать.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: GxDialog в VBA для ArcGIS
Пишите свой фильтр. Интерфейс для этого IGxObjectFilter (http://resources.esri.com/help/9.3/arcg ... Filter.htm)
Переопределяете метод CanDisplayObject - в нем открываете БД (которая передается в качестве параметра этого метода) и проверяете, есть ли в ней необходимые таблицы. Если есть - возвращаете true и эта база будет отображаться в диалоге (IGxDialog), а если необходимых таблиц нет - то не будет.
Переопределяете метод CanDisplayObject - в нем открываете БД (которая передается в качестве параметра этого метода) и проверяете, есть ли в ней необходимые таблицы. Если есть - возвращаете true и эта база будет отображаться в диалоге (IGxDialog), а если необходимых таблиц нет - то не будет.
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: GxDialog в VBA для ArcGIS
А может быть, здесь следует добавить нужные таблицы в слой и сделать, чтобы данные брались из таблиц слоя, а не базы? И если да, то как это можно сделать?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: GxDialog в VBA для ArcGIS
Можно и так. Из программы получить доступ к слоям можно через интерфейс IApplication->IDocument->IMap->Layers
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя