Материал: Digitals

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 6. Классификатор

Рассмотрим операции и функции, доступные для работы с параметрами типа Вещественное:

+ (плюс), - (минус), * (умножить), / (разделить), () (скобки)

Позволяет строить арифметические выражения в числовых параметрах.

Например, чтобы вычислить среднее из содержимого двух параметров, нужно определить параметр вида “=(P[1]+P[2])/2 Среднее значение”.

DeltaX, DeltaY, DeltaZ

Функции возвращают размах объекта по Х-координате, Y-координате и Z-координате соответственно.

SlopeAngle

Вертикальный угол уклона объекта.

SlopeDir

Дирекционный угол направления уклона объекта.

ObjectScale

Позволяет выяснить масштаб объекта, вставленного в карту командой Правка > Специальная вставка > В другом масштабе…. Также применяется в шаблонах документов DMT с автомасштабом.

Latitude, Longitude

Возвращают широту и долготу центра объекта соответственно.

AreaDeviation

Возвращает среднеквадратическую ошибку вычисления площади объекта, исходя из условия, что точность определения координат объекта составляет 1 метр. Для приведения ошибки, через * (звездочку) следует указать реальную точность определения координат объектов карты.

Например, параметр вида “=AreaDeviation*0.1” вернет ошибку площади для точности определения координат в 0.1 м.

Length3D

Вычисляет трехмерную (пространственную) длину объекта. Напомним, что фиксированный параметр с кодом -1 “Длина” вычисляет длину без учета координаты Z (то есть в проекции на горизонтальную плоскость).

Рассмотрим операции и функции, доступные для работы с параметрами типа Строка:

_ (подчеркивание)

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

Например, соединить два параметра через пробел в одну строку можно таким образом: “=P[1]_P[2] Два в одном”.

FIO(Строка)

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

Например, если параметр номер 10 содержит строку Иванов Иван Иванович, то параметр вида

“=FIO(P[10])” вернет Иванов И. И.

ROP(), FIR()

Склоняют в родительный падеж (Кого? Чего?). Функции возвращают полную и короткую форму имени соответственно. Например: Иванова Ивана Ивановича и Иванова И. И.

DAP(), FID()

Склоняют в дательный падеж (Кому? Чему?).

VIP(), FIV()

Склоняют в винительный падеж (Кого? Что?).

146

Производные параметры

TVT(), FIT()

Склоняют в творительный падеж (Кем? Чем?).

PRP(), FIP()

Склоняют в предложный падеж (О ком? О чем?).

Правила преобразования окончаний для каждого падежа задаются во внешних файлах, находящихся в программной папке. Сперва программа просматривает файл Names.txt, содержащий мужские имена. Затем из файлов Rod.txt, Dat.txt, Vin.txt, Tvo.txt, Pre.txt выбирается подходящее окончание (каждый из файлов отвечает за определенный падеж).

Файлы окончаний содержат три колонки: исходное окончание, окончание для мужских имен, окончание для женских. Если определенная строка окончаний помечена символом M или F, то эти окончания применяются только для мужского или женского имени соответственно.

LEN(Строка)

Возвращает длину строки. Строку можно задать ссылкой на параметр.

POS(Подстрока,Строка)

Возвращает позицию первого вхождения Подстроки в Строке.

CUT(НачальныйСимвол,Количество,Строка)

Вырезает часть Строки начиная с НачальногоСимвола и длиной в Количество. Например, “=CUT(4,2,P[26])” вернет два символа начиная с четвертого из параметра с номером 26.

CLP(Количество,Строка)

Возвращает Строку, обрезанную справа на Количество символов. Аргумент Количество может быть выражением.

FST(Лимит,Строка), RST(Лимит,Строка)

FST возвращает начальную часть Строки с количеством символов не более Лимит, обрезанную по ближайшему пробелу или запятой. RST возвращает остаток Строки после последнего перед Лимит символа пробела или запятой.

Функции обычно работают в паре и применяются для разбивки длинной Строки на две части. Пример применения данных функций можно найти в шаблоне госакта Госакт (голубой)

лицевая.DMT.

CLA(Строка)

Убирает из Строки комбинации ,- (запятая и дефис). Используется для подчистки пустых полей из значений параметров, предназначеных для хранения тегов обменного файла IN4.

GET(Часть,Строка)

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

Допустим, что параметр с номером 1 содержит строку один,два,три четыре пять. В этом случае:

функция GET(1,P[1]) вернет значение один, то есть первую часть строки, считая разделителем запятую.

функция GET(3/2,P[1]) вернет значение четыре, то есть сначала возьмет третью часть строки, считая разделителем запятую, а затем вторую часть из получившейся строки, считая разделителем пробел.

функция GET(3/-2,P[1]) вернет значение три пять, то есть возьмет третью часть строки, считая разделителем запятую, а затем из получившейся строки - все части кроме второй, считая разделителем пробел.

SEL(ПроверяемоеЗначение,Вход1|Выход1|Вход2|Выход2|...|*|ВыходПрочее)

Функция работает как условный оператор. Программа сравнивает ПроверяемоеЗначение с входными значениями и выдает соответствующее выходное значение. Если четкого соответствия не найдено, то срабатывает вариант помеченный * (звездочкой). Выходным значением может быть любая текстовая строка, ссылка на другой параметр или функциональное выражение.

Например, если в параметре номер 3 задано некое число, то параметр “=Sel(P[3],1|Один|2|Два|3|Три| *|P[15])” вернет Один, Два, Три - для чисел 1, 2, 3 соответственно, и содержимое параметра номер 15 - для всех остальных чисел.

147

Глава 6. Классификатор

SEF(ПроверяемоеЗначение,ИмяФайла)

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

Для примера, загляните в файл BlueActF.txt, который используется совместно с шаблоном документов Госакт (голубой) лицевая.DMT.

FIL(Файл,Константа)

Возвращает значение Константы заданной в Файле, размещенном в папке Templates програмной папки. Значения констант задаются строками вида Константа=Значение.

Изначально функция задумана для автоматизации подстановки реквизитов исполнителя, названий органов местной власти, имен должностных лиц и прочих значений при генерации документов из шаблонов. Подробнее смотрите в Гл.12, «Применение в землеустройстве».

FFF(ИмяФайла)

Позволяет разместить длинное выражение во внешнем файле, размещенном в папке Lists программной папки. (Длина имени параметра ограничена 127 символами, поэтому записать в него слишком длинную формулу не получится.)

Например, параметр может выглядеть как “=FFF(formula.txt)”, а файл formula.txt содержать, в свою очередь, строку с реальным выражением.

XPT(XMLСтрока,"ИмяУзла")

Функция возвращает текстовое значение узла из XMLСтроки по пути (XPath-запросу), указанному в аргументе функции ИмяУзла. Имя узла заключается в кавычки.

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

XMP(СмежникПоУмолчанию)

Получает данные из параметра “Додаткова інформація”, если он не пустой. Иначе данные берутся из параметра “Власник або розпорядник”.

Функция предназначена для извлечения информации из объектов слоя “XML: Суміжник” при работе с обменными файлами формата XML. Применяется в таблицах смежников в шаблонах документов.

SQL(СтрокаЗапроса)

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

Функции для получения общей информации:

MapFile

Возвращает полное имя файла текущей карты.

MapScale

Масштаб карты.

Date

Возвращает текущую дату, установленную на компьютере.

Маска параметра

Маска параметра определяет форматирование значения параметра, а также правила ввода и проверки. Предустановленную маску можно выбрать из списка Маска или ввести свою.

Маски форматирования применимы к фиксированным параметрам, которые вычисляют метрические характеристики объекта (фактически, это любой из фиксированных параметров, кроме параметра с кодом -5 “Слой”), а также к производным параметрам типа Вещественное.

Маски, задающие правила ввода и проверки, применимы к параметрам типа Строка.

1 http://www.geosystema.net/forum/viewtopic.php?f=1&t=1145&start=0

148

Маска параметра

Маски форматирования

Маски форматирования используются для задания определенного количества знаков после запятой (то есть дробной части), а также для приведения значения параметра к другой единице измерения.

Маска задается шаблоном форматирования, в котором можно использовать следующие символы:

. (точка)

Определяет место разделителя целой и дробной части. В шаблоне используется именно точка, но то, как будет выглядеть разделитель на самом деле, задается в региональных настройках Windows. Традиционно, в качестве разделителя используется . (точка) либо , (запятая).

0 (ноль)

Определяет обязательный вывод разряда числа в данной позиции. Если разряд равен нолю, будет выведен 0.

# (решетка)

Задает необязательный вывод разряда числа в данной позиции. Если разряд равен нолю, он выводиться не будет.

Любой символ Любой другой символ, примененный в маске, выводится без изменений. Эта возможность позволяет

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

Выражение Перед шаблоном, отделяемое пробелом, может присутствовать выражение, преобразующее

значение параметра перед выводом. Простейшее выражение состоит из арифметической операции

ичисла, например /10000.

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

hh:mm

Форматирует значение как часы:минуты (функция Date).

dd.mm.yyyy

Форматирует значение как день:месяц:год (функция Date).

00°00'00.0"

Форматирует значение как градусы, минуты, секунды (функции Latitude, Longitude).

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

Таблица 6.3. Примеры масок форматирования

Содержимое

Производный параметр

Маска

Выводимое

исходного

 

 

значение

параметра

 

 

 

 

 

 

 

102.00

=P[-2] Высота пикета

0.00

102.00

 

 

 

 

102.00

=P[-2] Высота горизонтали

0.##

102

 

 

 

 

1500

=P[0] Площадь в гектарах

/10000 0.0000 га

0.1500 га

 

 

 

 

1

=P[-6] Номер объекта

0000

0001

 

 

 

 

Маски правил проверки и форм ввода

Маски правил проверки и маски, задающие форму ввода, доступны для строковых параметров. Они позволяют контролировать правильность заполнения, а также заполнять параметры в удобных формах ввода.

149

Глава 6. Классификатор

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

В маске строкового параметра допускаются следующие символы-заместители формата и их комбинации:

* (звездочка)

Определяет любое текстовое или числовое значение (допускается пустое).

# (решетка)

Только числовое значение (пустое не допускается).

В дополнение к символам форматов * и # можно указывать следующие модификаторы:

N, >N, <N

Указание числа N после символа формата обеспечивает контроль длины вводимых данных.

Например, формат *>0 укажет, что пустое значение не разрешено, а формат #3 проконтролирует ввод строго трех цифр.

##.##.####

Формат такого вида применяется для контроля ввода дат.

=ЗначениеПоУмолчанию Для параметра (или любого из его полей) после символа = (равно) можно указать значение по

умолчанию, которое будет автоматически подставлено в форму ввода.

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

Части параметра (поля)

Значение параметра может состоять из нескольких частей (или иначе полей). По умолчанию разделителем частей параметра является , (запятая). Для таких параметров программа создает специальную форму ввода, в которой каждую часть параметра можно ввести в отдельном поле ввода.

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

Если вам нужен разделитель отличный от запятой, укажите его в начале маски, отделив от самой маски символом | (вертикальная черта).

Например, маска вида “ |*,*,*” (без кавычек, первый символ в маске пробел) использует в качестве разделителя пробел и часто применяется для ввода фамилии, имени и отчества.

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

Так, если дополнить предыдущий пример именами полей, то у нас получится маска вида #,*,*,*@Число|

Текст1|Текст2|Текст3.

Подключаемые справочники

Справочник - это текстовый файл, расположенный в папке Lists программной папки и содержащий список возможных значений параметра. Имя файла справочника задается после имени поля через : (двоеточие).

Справочник можно подключить с помощью кнопки

Справочник, расположенной справа

от поля ввода Маска в Менеджере параметров. Правда это можно сделать только для

150

Источник: https://studfile.net/preview/16666704/