Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Digitals.pdf
Скачиваний:
73
Добавлен:
28.06.2022
Размер:
9.86 Mб
Скачать

Layout DMT

NodesCount(Path,Tag:String):Integer

Возвращает количество узлов Tag в корне Path. Вот пример запроса, определяющего количество смежников для участка:

NodesCount('InfoPart/CadastralZoneInfo/CadastralQuarters/

CadastralQuarterInfo/Parcels/ParcelInfo[1]/AdjacentUnits',

'AdjacentUnitInfo')

XPath(Path:String):String

Возвращает текстовое значение из узла Path. Запрос, возвращающий целевое назначение участка, выглядит так:

XPath('InfoPart/CadastralZoneInfo/CadastralQuarters/

CadastralQuarterInfo/Parcels/ParcelInfo[1]/CategoryPurposeInfo/Use')

Описанные выше функции определены на уровне самого модуля Reports. Кроме этих функций, в коде шаблонов отчетов имеются десятки вспомогательных функций, написанных на языке PascalScript. Их также можно использовать, скопировав в свой шаблон. Изучите примеры кода и найдите свой путь для реализации собственных шаблонов.

Layout DMT

Это специализированный тип шаблона документа DMT, предназначенный для создания выкопировок из карт или схем расположения участков. Он объединяет в себе шаблон зарамочного оформления и функцию получения графического фрагмента. Шаблоны этого типа программа идентифицирует по наличию в названии файла слова layout. Размещаются такие шаблоны в программной папке.

Запускаются layout шаблоны обычным порядком из меню Сервис > Документы. В результате создается документ, в рамку которого вставляется растровое изображение исходной карты. Помеченный объект при этом переносится на специальный слой с условным знаком-штриховкой.

Рамка карты шаблона задает размах фрагмента исходной карты. Центр объекта на слое с кодом 7575001 “Layout object position” задает положение исходного объекта в документе. Размеры этого объекта значения не имеют. Шаблон автоматически масштабируется таким образом, чтобы соответствовать масштабу исходной карты, поэтому масштаб шаблона не важен. Имя файла создаваемого документа составляется из имени шаблона и результата выражения, заданного в имени карты шаблона (в окне свойств).

Систематизируем: что, где и как

Давайте еще раз вспомним, что за шаблоны нам доступны, где они хранятся и как они запускаются. На листинге приведен фрагмент дерева папок и файлов внутри программной папки Digitals. Имена папок здесь взяты в [ ] квадратные скобки. Ниже даны необходимые пояснения.

[Digitals]

|

\-----[Templates]

|

|

 

|

\-----[CadPlanA4.dmt]

|

|

|

|

|

\-----CadPlanA4.fr3

|

|

\-----CP.dmt

|

|

 

|

\-----Catalog.fr3

|

\-----TD_privat.fr3

|

 

 

\-----[1000.dmt]

|

|

 

|

\-----A4-1000.DMT

|

\-----Акт(погодження).DMT

|

Акт согласования границ.DMT

\-----

315

Глава 12. Применение в землеустройстве

\-----Кадастровый план (A4) 1000.DMT \-----Выкопировка A4 (layout).dmt

Пакет, обеспечивающий генерацию документа из формата XML с помощью технологии DMT +FastReport. Такие пакеты отображаются в меню Сервис > Документы в угловых скобках и помечены специальной иконкой. Хранятся в папке Templates.

Шаблоны отчетов FastReport для работы с форматом IN4. Эти шаблоны запускаются модулем Reports через Сервис > Генератор отчетов…. Обычно они хранятся в папке Templates, хотя Редактор пакетов модуля Reports допускает их хранение в любой папке.

Пакеты шаблонов документов DMT для работы с IN4. По сути, это те же шаблоны DMT, но запускаемые в обработку одной командой. Пакеты отображаются в меню Сервис > Документы в угловых скобках. Хранятся пакеты, как видим, в программной папке.

Одиночные шаблоны документов DMT для работы с IN4. Отображаются обычными пунктами в меню Сервис > Документы. Шаблоны размещены в программной папке.

Layout шаблоны для создания выкопировок. Отображаются пунктами в меню Сервис > Документы. Размещаются в программной папке.

Модуль текстовых констант List editor

Модуль List editor обеспечивает централизованное ведение единого файла для всех текстовых констант, встречающихся в шаблонах. Константы хранятся в файле Setup.ini, который находится в подпапке Templates программной папки.

Отметим, что данный файл не единственный, который обеспечивает работу всей системы. Константы (с помощью функций) могут ссылаться на файлы справочников, хранящиеся в подпапке Lists программной папки.

Ввиду того, что часть констант описывается функциями, а не жестко задается строками, их, вероятно, правильнее было бы называть псевдонимами функций. Впрочем, мы будем придерживаться предложенной разработчиками терминологии и называть их константами.

Модуль List editor запускается командой меню Сервис > Документы > Текстовые константы….

Внешний вид модуля показан на Рис.12.14.

Рисунок 12.14. Модуль List editor

316

Модуль текстовых констант List editor

Константы разделены на две группы:

Константы реквизитов. Это простые пары значений типа Директор=Иванов И.И., которые можно отредактировать, перейдя на закладку Ваши реквизиты.

Константы, зависящие от параметров участка. Фактически, это функции, которые составлены таким образом, чтобы учитывать административное подчинение участка. Идея заключается в том, что кадастровый код участка вмещает в себя всю необходимую информацию для идентификации области, района и сельского совета.

Поскольку с первой группой констант все очевидно, давайте остановимся подробнее на второй.

Сточки зрения пользователя все тоже довольно просто:

1.На закладке Утверждающие органы следует выбрать свою область, район и местный совет.

2.Ниже находятся две панели с фильтрами категорий (слева) и подкатегорий (справа) в виде “галочек”. Сняв галочки, можно скрыть константы, которые вы не собираетесь редактировать в данный момент.

3.Остается отредактировать значения в констант списке внизу. Изменения будут автоматически внесены в соответствующие справочники.

Теперь заглянем “под капот”. Вот фрагмент файла Setup.ini :

RepНазва(Область)=SEF(RegionID,'Obl.txt')

DMTНазва(Область)=SEF(CUT(1,2,P[ID106]),Obl.txt)

RepНазваР(Область)=SEF(RegionID,'OblRod.txt')

DMTНазваР(Область)=SEF(CUT(1,2,P[ID106]),OblRod.txt)

Разберем строку, определяющую константу.

В левой части (до знака равенства) находится имя константы. Имя состоит из следующих частей:

Rep

Тип константы. Указывает на то, что данная константа предназначена для применения в шаблонах FastReport. Такое разделение констант необходимо из-за небольших отличий в синтаксисе функциональных выражений.

(Область)

Название категории. Указывает на то, что константа содержит данные, относящиеся к уровню области. Указывается в скобках - видимо для того, чтобы придать имени константы вид, подобный вызову функции.

Каждой категории поставлен в соответствие префикс имен справочников. В данном случае это префикс Obl (файл Obl.txt).

Категории сопоставляются префиксам в окне Добавление новой категории, которое вызывается после нажатия кнопки Добавить справочник. Здесь мы на этом подробно

не останавливаемся.

Другие возможные категории, уже присутствующие в Setup.ini: Район, Сільрада, Держадміністрація, УЗР, ВМА, ДЗК, ОблСЕС, ОблЕкологія, ОблАрхеологія, ДержАкт.

Назва

Название подкатегории. В данном случае, в сочетании с категорией, означает, что константа возвращает название области.

Другие возможные подкатегории: НазваР, НазваД, Пасада, Начальник, Адреса, НазваУЗРР, Зберігається.

В правой части описано выражение, извлекающее данные. Функция SEF по заданному входному значению ищет строку во внешнем файле.

Здесь RegionID представляет собой переменную, действительную в модуле Reports, которая хранит номер области. Имя файла Obl.txt взято в одинарные кавычки по требованию синтаксиса языка PascalScript, используемого в шаблонах FastReport.

317

Глава 12. Применение в землеустройстве

Отличия в левой части: DMT вместо Rep означает, что данная константа применяется в шаблонах DMT.

Отличия в правой части связаны с особенностями использования функций в DMT. Код области извлекается с помощью функции CUT из параметра, содержащего кадастровый номер участка. Имя файла справочника записывается без кавычек.

Здесь подкатегория меняется на НазваР, что означает название в родительном падеже. Соответсвенно меняется файл справочника - OblRod.txt. Обратите внимание, что имя файла имеет тот же префикс - Obl.

Ну и вариант предыдущей константы для шаблона DMT.

А вот фрагмент справочника OblRod.txt, в котором ведется поиск названий областей в родительном падеже. Коды в справочнике отделяются от названий символом табуляции.

01 Автономної Республіки Крим

05 Вінницької областї

07 Волинської області

Подобным образом описаны и остальные константы, содержащиеся в файле Setup.ini.

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

Отметим также, что файл Setup.ini не рекомендуется редактировать вручную, ввиду возможной потери изменений после запуска List editor. Тем не менее, если отказаться от помощи данного модуля, ручное редактирование вполне допустимо. В этом случае имена констант и функции, которые вы за ними скрываете, ограничиваются только вашей фантазией.

Впрочем, никто не запрещает создать параллельно существующую систему констант, назвав файл, к примеру, Setup2.ini. Такой подход позволит сохранить текущую реализацию в рабочем состоянии.

Создание формы 6-зем

Как вы вероятно уже могли заметить, форму 6-зем можно создать с помощью соответствующего шаблона отчета FastReport. Здесь мы расскажем еще об одном способе, который стоит несколько особняком в стройной системе шаблонов документов Digitals. Речь идет о команде Сервис > Документы > Форма 6-

зем (экспликация).

Данная команда создает форму 6-зем для участка (или нескольких участков), открытых из обменных файлов в формате IN4. Для своей работы команда использует шаблон электронной таблицы Excel 6Zem.xlt, который находится в папке Templates программной папки.

Разумеется, что для того, чтобы данная команда работала, в системе должен быть установлен Microsoft Office. Результат работы данной коанды предлагаем оценить самостоятельно, пометив участки в карте и выполнив команду из меню.

318