| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		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    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| То что надо, спасибо большое ! | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		 |