logo search
лабораторні роботи 2-9

Менеджер параметров, команда «Параметры...»

Обзор Менеджера параметров

В Менеджере параметров (полей базы данных) создается и редактируется список всех доступных объектам карты параметров (кроме фиксированных), задаются их типы и устанавливаются атрибуты отображения в виде подписей на карте.

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

Работа со списком параметров очень похожа на работу со списком слоев (в Менеджере слоёв).

Редактирование списка параметров

Для редактирования списка нажмите кнопку на верхней инструментальной панели. Пока кнопка нажата, список будет находиться в режиме редактирования. Вы можете свободно перемещаться по списку в этом режиме и модифицировать его содержимое. Используйте клавишу <Ins> для добавления параметра. Нажатие <Enter> в последней строке списка вызывает то же действие. Используйте правую кнопку мыши для вызова контекстного меню с функциями редактирования. По завершению редактирования нажмите кнопку повторно.

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

Сортировка списка параметров

Последовательность параметров в списке может быть изменена. Для этого необходимо вызвать контекстное меню Менеджера (щелчок правой кнопкой мыши на списке параметров) и в нем выбрать пункт Сортировка, в котором выбрать один из подпунктов: По ID (по коду) и По имени.

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

Установка атрибутов (графического представления) параметров

Для изменения атрибутов пометьте требуемые параметры и воспользуйтесь элементами управления на правой инструментальной панели.

Все ее пространство разбито на следующие панели:

Тип параметра (Parameter Style):

Используйте этот выпадающий список для задания типа помеченного параметра (параметров). Поддерживаются следующие типы:

Тип параметра Назначение

Байт, Слово, Целое Предназначены для хранения целочисленных значений, которые ограничены диапазонами 0..255, 0..65535 и -2147483648 .. 2147483647 соответственно.

Примечание: Рекомендуем всегда использовать тип Целое для целочисленных значений.

Вещественное Предназначен для хранения вещественных чисел (содержащих целую и дробную части).

Строка Предназначен для хранения текстовой строки.

Логическое Предназначен для хранения логических значений Истина/Ложь (Да/Нет).

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

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

Таблица Предназначен для параметров задаваемых списком значений состоящих из одной и более колонок.

Атрибуты заливки (Brush Attributes):

Используйте выпадающий список цветов для задания цвета закраски подписи из стандартной палитры Windows. Если необходимо, чтобы подпись "затирала" нижележащие объекты (подпись горизонтали), то укажите в качестве цвета закраски — белый.

Используйте выпадающий список стандартных шаблонов для задания типа закраски.

Используйте эту кнопку для вызова расширенного диалога определения цвета (не из палитры Windows).

Статус параметра (Parameter State):

Используйте список для изменения статуса помеченного параметра (параметров). Параметр может находиться в одном из следующих состояний:

Статус параметра Доступные операции

Редактируемый (Editable): Разрещены все операции над параметром.

Помечаемый (Selectable): Подписи данного параметра видимы и могут быть помечены, однако не могут редактироваться.

Видимый (Visible): Параметры видимы, однако не могут ни помечаться, ни редактироваться.

Невидимый (Hidden): Подписи данного параметра не отображаются на карте и не могут ни помечаться, ни редактироваться.

Диапазон видимости параметра (Visible Scale Range):

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

Установки шрифта для подписей параметра

Настройки шрифта для подписей помеченного параметра можно изменить в группе Атрибуты шрифта.

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

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

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

Используйте эту кнопку для вызова расширенного диалога определения цвета.

Задание маски форматирования параметра

На верхней инструментальной панели Менеджера находится поле Маски, в котором вы можете ввести маску форматирования помеченного параметра (параметров), или выбрать одну из стандартных масок, находящихся в списке:

Маски форматирования это шаблоны представления значения параметров на панели Инфо, на карте, в отчетах и пр. Маски применимы только к параметрам типа Вещественное и Строковое.

Маски вещественных параметров

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

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

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

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

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

Например, если параметр принимает значения 5.1, 3.14, 7.7252, и задана маска 0.00 (два обязательных знака после запятой), то он будет выводиться соответственно как 5.10, 3.14, 7.73.

При установленной маске 000.000 (три обязательных знака перед запятой и три после запятой) значения будут выводиться как 005.100, 003.14, 007.725.

При установленной маске 0.## (два необязательных знака после запятой) значения будут выводиться как 5.1, 3.14, 7.73.

Для подписей пикетов обычно используется маска 0.00, а для подписей горизонталей - 0.##.

Маски строковых параметров

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

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

* - любое текстовое или числовое значение (допускается пустое);

# - только числовое значение (пустое не допускается);

, - разделитель частей параметра по умолчанию (или другой как описано ниже).

Например, маска "*, *, *" описывает параметр, который должен состоять из трех частей, разделенных запятыми.

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

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

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

Для задания значения по умолчанию каждой части параметра используйте =значение.

Маска также может явно задавать значение разделителя, если он отличен от запятой. Для этого первым символом маски должен быть символ-разделитель, отделенный от маски при помощи "|".

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

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

Также можно использовать двойной щелчок левой кнопки мыши в поле ввода соответствующего параметра. Форма ввода позволяет отдельно вводить и редактировать каждую часть параметра (поле).

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

Примеры масок:

|***@Фамилия|Имя|Отчество

#3=804,*=Винницкая*,*,*,*,*,*@Код|Область|Район|Город|Улица|Дом|Корпус|Квартира

##.##.####,##.##.####@Дата начала|Дата окончания

Существуют следующие фиксированные параметры:

Line Length[N] Длины линий в объекта (параметр-массив).

Points number[N] Номера точек в объекте (параметр-массив).

Count Количество точек в объекте.

Layer ID Идентификатор слоя объекта.

Object ID Идентификатор объекта.

Слой (Layer): Наименование слоя объекта.

X: Координата X центра объекта.

Y: Координата Y центра объекта.

Z: Координата Z центра объекта.

Длина (Length): Длина (периметр) объекта (сумма длин составляющих его линий).

Площадь (Area): Геометрическая площадь объекта.

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

Можно создавать параметры, значения которых являются производными от значений других параметров. Например, отметки высоты горизонталей и пикетов должны иметь различные атрибуты: цвет, размер шрифта, маску и т.п. Однако имеется всего один фиксированный параметр высоты (Z). В этом случае вы можете создать второй параметр, производный от высоты.

Для этого создайте новый параметр, имя которого "=P[-2] Высота горизонтали"

Первая часть названия такого параметра =P[-2] (до первого пробела) указывает, что значение параметра будет равно значению параметра с номером -2 (то есть значению высоты Z).

Далее (после пробела), следует произвольное имя параметра (в нашем случае Высота горизонтали).

Настройте желаемые атрибуты шрифта для созданного параметра.

Сделайте параметр Z (фиксированный) доступным для слоя пикетов, а вновь созданный - для слоя горизонталей. Вынесите эти параметры на карту. Теперь высоты горизонталей будут иметь свои правила отображения (коричневый цвет, маска 0.##), а высоты пикетов - свои, но в каждом случае их значения будут равны значению параметра Z.

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

Например, имя "=P[10],P[11],P[12]" создаст суммарный параметр из значений параметров с номерами: 10, 11 и 12, разделенных запятыми.

Для вещественных и целочисленных параметров можно вводить формулы, вычисляющие значение, производное от нескольких параметров, например =P[0]*P[25], =P[15]+P[17], =P[20]/P[41].

При создании подобных формул для производных параметров используйте символы + (плюс), - (минус), * (умножить) и / (разделить).

Использование функций в производных параметрах

Функции, которые можно использовать в создании производных параметров зависят от типа создаваемого параметра (строковый или вещественный).

Функции для вещественных параметров:

Delta X

Размах объекта по Х-координате.

Delta Y

Размах объекта по Y-координате.

Delta Z

Размах объекта по Z-координате.

SlopeAngle

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

SlopeDir

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

MapScale

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

Latitude

Широта центра объекта, т.е. перевод текущей координаты X в градусы широты.

Longitude

Долгота центра объекта, т.е. перевод текущей координаты Y в градусы широты.

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

AreaDeviation

Cреднеквадратическая ошибка вычисления площади объекта.

Вычисляется исходя из условия, что точность определения координат объекта составляет 1 метр.

Для приведения ошибки ее нужно умножить на реальную точность определения координат объектов карты.

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

Функции для строковых параметров:

Для строковых параметров доступна операция сложения (объединения). Например, если параметр с номером 3 хранит название улицы, а параметр 4 номер дома, то для получения суммарного адреса создайте следующий параметр =P[3]_[P4] Адрес. Символ подчеркивания "_" используется здесь для замены символа пробел и он будет автоматически заменен пробелом при форматировании значений.

Существует также ряд функций для склонения собственных имен:

(пусть, параметр P[5] содержит фамилию: Иванов Петр Васильевич)

FIO(P[5])

Переводит фамилию, имя, отчество в фамилию с инициалами в именительном падеже (Иванов П. В.);

FIR(P[5])

Переводит фамилию, имя, отчество в фамилию с инициалами в родительном падеже (Иванова П. В.);

FID(P[5])

Переводит фамилию, имя, отчество в фамилию с инициалами в дательном падеже (Иванову П. В.);

ROP(P[5])

Переводит ФИО полностью в родительный падеж (Иванова Петра Васильевича);

DAP(P[5])

Переводит ФИО полностью в дательный падеж (Иванову Петру Васильевичу).

Правила перевода этих функций задаются следующими текстовыми файлами:

Names.txt

Содержит список всех мужских имен в именительном падеже.

Rod.txt

Содержит варианты склонения окончаний в родительный падеж для женских и мужских имен и фамилий.

Dat.txt

Содержит варианты склонения окончаний в дательный падеж для женских и мужских имен и фамилий.

Функция GET

Выполняет выделение частей параметра по запятым и пробелам.

Например, пусть параметр P[24] содержит строку:

'804, Киевская, Васильковский, пгт. Глеваха, ул. Петра Запорожца, 1, 4',

тогда:

GET([1,P[24]]) вернет '804' (первый фрагмент, деленный по запятым)

GET([5,P[24]]) вернет 'ул. Петра Запорожца' (пятый фрагмент, деленный по запятым)

GET([5/1,P[24]]) вернет 'ул.' (из пятого фрагмента берется первая часть до пробела)

GET([5/-1,P[24]]) вернет 'Петра Запорожца' (из пятого фрагмента берется все, кроме первой части)

Функция CUT

Выполняет выделение частей параметра по позиции.

Например, пусть P[26]='2567410028' тогда:

CUT(1,3,P[26]) вернет '256' (три символа, начиная с первого)

CUT(4,2,P[26]) вернет '74' (два символа, начиная с четвертого)