Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Определить неиспользуемые слои

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
rastiniak



Зарегистрирован: 05.10.2012
Сообщения: 20

СообщениеДобавлено: Пт 09 Ноя 2012 10:42    Заголовок сообщения: Определить неиспользуемые слои Ответить с цитатой

Требуется упорядочить стили.Их много и они называются одинаково и бессмысленно.
Поэтому необходимо определить какими стилями не представлены объекты и убрать их.В INGEO_OBJINFO и INGEO_STYLES такой информации не содержится.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Пт 09 Ноя 2012 13:04    Заголовок сообщения: Ответить с цитатой

Не надо лазить в базу напрямую.

Используйте API:

Код:
sub ShowActiveLayerStylesWithoutObjects
   dim aLayer
   set aLayer = Application.ActiveProjectView.ActiveLayerView.Layer

   dim aMapObjects
   set aMapObjects = Application.ActiveDb.MapObjects

   dim aStyle, aLog
   aLog = ""
   for each aStyle in aLayer.Styles
      dim anObjectCount
      anObjectCount = 0
      
      dim aQuery
      set aQuery = aMapObjects.QueryByStyle(aStyle.Id, inqsOneOrMore)
      do while not aQuery.Eof
         anObjectCount = anObjectCount + 1
         aQuery.MoveNext
      loop

      if anObjectCount = 0 then
         aLog = aLog & "[" & aStyle.Id & "] " & aStyle.Name & vbNewLine
      end if
   next
   MsgBox aLog
end sub

_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
rastiniak



Зарегистрирован: 05.10.2012
Сообщения: 20

СообщениеДобавлено: Пт 09 Ноя 2012 16:17    Заголовок сообщения: Ответить с цитатой

То что надо, спасибо большое !
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB