MI_SEM Plus.mbx

(C)Дмитрий Мазуров,2007

			Введение.

	Эта программа включает в себя несколько функций, задействующих классификатор MI_SEM. MI_SEM (MapInfo SEMantics) - это программный комплекс, разработанный Андреем Багровским и переработанный и дополненный автором данной программы. Основными частями MI_SEM являются редактор классификатора и редактор семантики. Программа "MI_SEM Plus" - это расширение MI_SEM.

			Порядок работы.

	Запускаем mbx, в меню "Программы" появляется подменю "MI_SEM Plus" (далее - "меню программы"). Для начала необходимо указать классификатор, с которым вы будете работать. Для этого в меню программы есть отдельный пункт "Классификатор...". Также классификатор можно выбрать из диалога любой функции программы. Важно помнить, что все функции программы используют один классификатор.
	В меню программы есть пункт "Панель настройки связи классификаторов Панорамы и MI_SEM", он позволяет показать/скрыть панель кнопок "Pan_MI", которая используется для настройки параметров функции "Оформить по MI_SEM-овски". Если панель вам не нужна, лучше отключить ее здесь.

			Деление на слои.

	Деление на слои подразумевает перераспределение объектов по таблицам-слоям. Для этого исходные таблицы должны быть формата mi_sem, т.е. содержать колонки vid_kod, vid_name и notes. Название слоя, в который отправится конкретный объект, определятся его vid_kod-ом, т.е. типом объекта по классификатору (привязка объектов к слоям описана ниже). Делению на слои подвергается заданная папка вместе с подпапками. Результатом является новая папка, имеющая такую же структуру подпапок, только вместо таблиц формата mi_sem в ней содержатся таблицы-слои. В каждой папке создается рабочий набор, содержащий окно карты, отображающее таблицы-слои в нужном порядке (как задать порядок слоев описано ниже).
	Порядок работы таков: идем в меню программы, "Деление на слои", появляется диалог "Деление на слои". С помощью кнопки "Классификатор..." выбираем классификатор или убеждаемся, что он выбран верно. Далее, нажимаем кнопку "Настройки...", в результате чего появляется окно списка для таблицы "Слои" и панель кнопок "Слои". Таблица "Слои" является частью классификатора и служит для сопоставления имени слоя каждому типу объекта (идентифицируемому vid_kod-ом). Кроме полей, указывающих и описывающих тип объекта (код, имя, слой\группа), в таблице есть колонка layer, которая и содержит имя сопоставленного слоя (привязку объекта к слою). Не рекомендуется редактировать эту колонку вручную, для этого есть кнопки панели "Слои".

		Панель "Слои":

"Задать слой..." ("=") - вызывает диалог "Выбор слоя"/"Слои". 
	Диалог служит, в первую очередь, для задания привязки к слою. Для того, чтобы привязать объекты к слою, нужно выбрать их в списке "Слои", затем вызвать диалог "Выбор слоя", выбрать в списке строчку с нужным именем слоя и нажать "ОК" (можно использовать и двойной щелчок по строке списка). 
	Если нужного слоя еще нет в списке (в диалоге "Выбор слоя"), его нужно добавить кнопкой "Добавить...". 
	Можно исправить имя слоя, если его имя введено неправильно. Для этого есть кнопка "Править...". Привязки в таблице "Слои" будут изменены на новое имя слоя автоматически. 
	Можно удалить имя слоя из списка (кнопка "Удалить..."). Программа позволяет отправить объекты, привязанные к удаляемому слою, в другой слой (для этого будет показан дополнительный диалог). 
	Есть также возможность очистки списка слоев. Все привязки к слоям также будут удалены.
	Вторым назначением диалога является изменение порядка слоев. Для этого справа от списка слоев есть кнопки "^" и "v", позволяющие передвинуть выбранную строчку на одну позицию вверх или вниз по списку. Для изменения порядка слоев не обязательно выбирать строки в таблице Слои перед нажатием кнопки "=" на панели. Порядок слоев хранится в таблице mif_layers классификатора mi_sem.

"Удалить привязку" (красный крест) - удаляет привязку к слою в выбранных строках таблицы Слои.

"Сортировка списка..." (A->Z) - позволяет показать таблицу Слои списком, строки в котором отсортированы по другим столбцам.

"Завершить привязку слоев" (крестик) - закрывает список и панель "Слои". Все внесенные изменения при этом сохраняются.

		Запуск деления на слои.

	Для деления на слои не нужно открывать исходные таблицы. Просто выбираем в меню программы "Деление на слои" и настраиваем параметры в появившемся диалоге.

"Входная папка (берется с подпапками)" - в каждой папке внутри входной могут находиться как таблицы формата mi_sem так и прочие таблицы. Никакие данные во входной папке не будут изменены, результат будет сохранен в новую (выходную) папку с сохранением структуры подпапок. В выходной папке обязательно будут присутствовать все объекты  исходных таблиц, но в новых слоях. Еще там может присутствовать рабочий набор с картой новых слоев. Что еще может быть в выходной папке? Смотрите ниже.

"Включать в результат растровые слои" (галка) - если галка стоит, растровые слои будут копированы в выходную папку. Если нет, то нет. В карте в рабочем наборе растр не отображается.

"Включать в результат слои, в которых нет колонки vid_kod" (галка) - то же самое для обычных таблиц не-mi_sem-овского формата. В карте в рабочем наборе такие таблицы отображаются только в том случае, если их имена есть в списке слоев (см. выше описание кнопки "Задать слой...").

"Удалить из результата все колонки кроме vid_name и notes" (галка) - в таблицах-слоях будут только 2 колонки: с типом объекта и его характеристиками. Это правило не относится к не-mi_sem-овским таблицам, которые копируются в выходную папку без изменения (если копируются).

"Переименовать колонку vid_name в", "Переименовать колонку notes в" - так будут называться колонки типа объекта и характеристик в таблицах-слоях.

"Создать рабочие наборы масштаба 1:" (галка и поле ввода знаменателя масшаба) - здесь включается создание рабочих наборов в каждой папке и задается их масштаб. В каждом рабочем наборе будет окно карты, состав слоев которого соответствует списку слоев диалога "Выбор слоя" (см. выше). Также в рабочем наборе будет окно отчета, отображающее эту карту в выбранном масштабе.

После нажатия кнопки ОК начнется процесс деления на слои. Прогресс и отчет по обработке каждой таблицы будет отображаться в окне сообщений MapInfo. Если все пройдет без ошибок, то в итоге в окне проводника будет показана выходная папка.