Листы.mbx

(С) Мазуров Дмитрий, 2005

				Введение.

	Программа разбивает карту на листы (прямоугольные области) и создает макеты печатных страниц, отображающих эти листы и некоторую другую информацию (в зависимости от шаблона печатного листа). Программа работает с любыми таблицами MapInfo, в том числе её можно применять для таблиц Кадастрового офиса.

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

	После запуска приложения "Листы.mbx" в меню "Программы" появляется подменю "Листы карты". Меню "Листы карты" содержит три пункта:
1) "Создать листы карты..." - инициирует создание листов.
2) "Создать макет листа..." - инициирует создание макета печатного листа (номер листа указывается).
3) "Выход" - завершить работу программы "Листы" (подменю "Листы карты" исчезнет).

			Создание листов карты.

	Листы создаются для выбранных в верхнем окне карты объектов, поэтому при выполнении команды "Создать листы карты..." должен быть выбран один или несколько объектов и верхним должно быть окно карты. Если все указанные условия выполнены, появится диалог "Создание листов карты", где следует ввести следующую информацию:

"Масштаб 1:" (поле и кнопка) - знаменатель желаемого масштаба готовых листов. Кнопка служит для выбора масштаба из стандартного ряда.

"Расположение листов" - возможны три варианта: 
	"горизонтальными слоями" - объекты будут покрыты горизонтальными полосами высотой в лист и каждый лист будет полностью содержаться в своей полосе. Такое расположение будет удобным для протяженных по вертикали объектов;
	"вертикальными слоями" - то же, но по вертикали;
	"автовыбор" - программа попробует расположить листы и вертикальными и горизонтальными слоями, а затем выбирает тот вариант, где меньше листов.

"Шаблон листа" - путь к рабочему набору с шаблоном страницы. На этапе создания листов шаблон нужен лишь для того, чтобы определить ширину и высоту листов. Поэтому можно использовать сгенерированные листы для создания макетов на основе другого шаблона, если только размеры графического макроса %карта% там сохранятся (для подробностей см. раздел "Шаблоны и макросы").

"Где создавать таблицу Листы" (переключатель) - позволяет задать папку, в которой будет создана таблица Листы с пронумероваными прямоугольниками - листами карты:
	"Во временной папке Windows" - выберите это вариант, если вы не собираетесь использовать таблицу Листы после завершения текущего сеанса MapInfo.
	"В папке таблицы, объекты которой выбраны" - выберите этот вариант, если собираетесь сохранить таблицу Листы для использования в следующих сеансах MapInfo.
	"В указанной папке:" - позволяет указать нужную папку в специальной графе. Кнопка "..." как обычно служит для обзора папок.
	Если выбран вариант сохранения кроме временной папки и таблица Листы уже есть в папке сохранения, то будет выдано предупреждение о перезаписи таблицы.

	По нажатию кнопки "ОК" программа создаст прямоугольники листов в таблице "Листы" и добавит слой "Листы" в текущее окно карты, подниз. На новом слое будут подписаны номера листов. Таблица "Листы" содержит только одну колонку семантических данных. Она называется SheetNumber и содержит номера листов. После создания листов программой и до создания макетов для печати можно изменить расположение и нумерацию листов по своему усмотрению. Переименовывать колонку SheetNumber и менять размеры прямоугольников нельзя!

			Создание макета листа.

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

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

"Масштаб 1:" - знаменатель масштаба. Если Вы только что создавали листы, то по умолчанию программа предложит масштаб этих самых листов. Из размера листов на карте и масштаба программа определит размеры листов на бумаге.
	Файл <папка программы листы>\Настройки\MapCommands.txt содержит команды MapBasic, которые будут выполняться после создания копии карты для листа. Эти команды оказываются нужны, если Вы разбили на листы карту из "Договора аренды" кадастрового офиса. Дело в том, что в Кад. Офисе при дублировании окна карты почему-то теряется слой CurZd, приходится его добавлять этими самыми командами. 

"Лист" (группа элементов управления) - позволяет задать номер (по порядку) листа, макет которого следует подготовить. Если номера листов начинаются с 1 и идут по порядку (номер последнего листа = числу листов), то номер по порядку будет совпадать с номером листа из колонки SheetNumber таблицы листов.
	Графа служит для задания/отображения номера листа. 
	Кнопки "<" и ">" - уменьшают и увеличивают значение номера на единицу. 
	Кнопки "<<" и ">>" служат для перехода к первому и последнему листу соответственно.
	Кнопка обновить нужна для отображения нового общего числа листов при ручном изменении значения графы "Таблица листов". Если для выбора таблицы листов используется кнопка "..." (обзор), нажимать кнопку "обновить" не нужно.

"Шаблон листа" - путь к рабочему набору с шаблоном страницы.

			Шаблоны и макросы.

	Шаблон - это такой рабочий набор, который при запуске не открывает никаких таблиц, а из окон создает ровно один отчет, в котором содержатся макросы. Макросы представляют собой текст специального вида, который распознается программой и заменяется на текст или рамку карты при создании макета печатного листа на основе данного шаблона. Макросы бывают текстовые и графические. Текстовые заменяются текстом, а графические - картами и таблицами (в программе Листы не бывает таблиц).

	Текстовые макросы встраиваются в текст надписей и имеют вид:
%Имя макроса%[значение параметра%]*
Скобки [ ]* означают, что конструкция в скобках может повторяться 0 и более раз. Количество и порядок параметров фиксированы для каждого отдельного макроса.
	Приведу несколько примеров:
%Дата% - макрос без параметров, заменяется на текущую дату.
%Площадь%кв.м%0.1% - макрос с двумя параметрами (единицы площади и округление).
	При написании имени макроса не обязательно соблюдать регистр букв, например, можно писать и %площадь% и %ПлОщадЬ% - для программы разницы нет. Весь текст текстового макроса, включая список параметров, следует писать в одной строке и без пробелов, например, если написать %  Дата% или  %Площадь% кв. м %0.1%, то программа не поймет. В числах в качестве десятичного разделителя используйте точку. Один и тот же макрос может встречаться многократно в тексте любой надписи, заменено будет каждое его вхождение.

	Графические макросы по форме несколько отличаются от текстовых: они состоят из следующих частей:
1) Непосредственно сам макрос со списком текстовых параметров - похож на текстовый макрос, но в отличие от него занимает всю надпись, а его параметры отделяются от имени макроса и друг от друга переводом строки. Вот пример:

%Описание стмежеств%
0.02

0.02 - это расстояние между строками списка смежеств. 
Этот макрос программа "Листы" не понимает, он приведен для примера.

2)Прямоугольник-граница - это объект типа прямоугольник, полностью содержащий макрос - наглядно указывает границы графического элемента. Если макрос содержится сразу в нескольких прямоугольниках, то в качестве ограничивающего берется прямоугольник наименьшей площади.

3)Список параметров-стилей - это набор объектов (подписей, линий и пр.), полностью содержащихся в прямоугольнике-границе. Эти объекты считываются программой сверху-вниз, у каждого объекта учитывается только значение конкретного стиля (штриховка, шрифт и пр.), остальное игнорируется. Эти параметры служат для наглядного задания стилей.

При замене графического макроса все указанные элементы удаляются, а вставляется соответствующий графический элемент (карта или таблица). 
 Далее приведен список макросов, которые понимает программа "Листы".

			Графические макросы.

%Карта% - часть (лист) карты.

%Схема листов% - схема расположения листов.

			Текстовые макросы.

%Масштаб% - масштаб листа карты. 
Пример результата: "1:5000".

%Лист% - номер текущего листа. Берется из колонки SheetNumber таблицы "Листы".

%Листы% - общее число листов.

%Атрибут%Колонка% - значение колонки "Колонка" для выбранного объекта. 
Пример макроса: "%Атрибут%Наименование%".

%Дата% - текущая дата. Формат даты определяется кратким форматом даты, заданном в региональных настроиках Windows.
Пример результата: "19.11.03".

%Площадь%Единицы площади%Округлять до% - площадь выбранного объекта.
"Единицы площади" - единицы измерения площади, русское сокращенное название. Параметр может принимать следующие значения: "кв.м", "кв.км", "га", "акр" "кв.см",  "кв.мм".
"Округлять до" - до каких значений округлять площадь. Например, при значении параметра "0.1" площадь будет округлена до десятых (будет иметь 1 знак после десятичной точки).
Пример макроса: "%Площадь%кв.м%0.01%". Пример результата: "1422.04".
