Логические выражения условий отбора объектов в ПК «Нева». Операторы и операнды. — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Логические выражения условий отбора объектов в ПК «Нева». Операторы и операнды.

2017-09-26 341
Логические выражения условий отбора объектов в ПК «Нева». Операторы и операнды. 0.00 из 5.00 0 оценок
Заказать работу

В ПК «Нева» для отбора объектов по определённым критериям используются формулы логических выражений. Данные выражения используются:

· в диалоге настроек фильтра выборки команды «Выборка/Фильтр…» в поле «Условие»

· в диалоге настроек фильтра выборки команды «Выборка/Фильтр…» на странице «Отношение» в дополнительных параметрах сравнения объектов по характеристикам (кнопка ).

· в диалоге команды «Разное/Создать «DBF»…»

· в диалоге настроек отображаемых атрибутов команды «Настройка/Отображаемые атрибуты…»

· в настройках Классификатора (команда редактора Классификатора «Окна/Графика») если требуется изменять графическое представление объектов, в зависимости от наличия или значения определённых атрибутов у этих объектов;

· в настройках Классификатора для карт с объектно-ориентированной моделью данных в настройках связей объектов и настройках ограничений по семантике.

 

Операторы.

1. Арифметические операторы:

" + " – сложить

" - " – вычесть

" * " – умножить

" / " – разделить

2. Логические операторы:

" & " – логическая операция "И"

"! " – логическая операция "ИЛИ"

3. Операторы сравнения:

" > " – больше

" < " – меньше

" >= " – больше или равно

" <= " – меньше или равно

" = " – равно

" <> " – не равно

4. Операторы позиционирования:

"? " – указание вхождения простой характеристики внутри комплексной

 

Операнды.

1. Константы:

" 2014 " – числа целые и десятичные дроби

" Москва " – текстовые строки (в выражении заключаются в кавычки или в некоторых случаях можно использовать одинарные кавычки)

" * " – обозначает «любой символ» в текстовой строке, в соответствии с общими правилами

" ^ " – ставится в начале выражения после кавычки для исключения отдельного анализа слов (игнорирование пробелов в тексте)

" ^# " – обозначает «любая цифра» в текстовой строке

" ^$ " – обозначает «любая буква» в текстовой строке

"? " – символ, замещающий любой знак в строке

2. Функции:

" nil " – отсутствие значения

" sin " – синус

" cos " – косинус

" exp " – экспонента

" ln " – натуральный логарифм

" % " – модуль остатка от деления

3. Переменные:

Признаком переменной служит символ «@», после которого ставится либо номер характеристики, либо сами переменные:

" V " – порог отображения объекта

" S " – площадь объекта

" L " – длина метрики объекта

" N " – количество точек метрики объекта

" C " – количество дочерних объектов

" Z " – служебная характеристика «Z»

" U " – уровень положения объекта в дереве карты (0 – корень карты, 1 – слои, 2 – объекты слоёв, 3 – «дети» объектов слоя и т.д.)

" I " – цвет объекта (служебная переменная)

" F " – запреты редактирования объекта (служебная переменная)

Переменные для анализа расположения подписей:

" G " – атрибуты текста, признак расположения подписи (0 – Над линией, 1 – По линии, 2 – Под линией)

" H " – атрибуты текста, признак центрирования (0 – Плотный слева, 1 – Разрядка по буквам, 2 – Точка-буква, 3 – Вектор-буква, 4 – Плотный справа, 5 – Плотный по центру, 6 – Разрядка по словам, 7 – Выноска)

Альтернативные переменные для анализа расположения подписей:

" Y " – атрибуты текста, признак расположения подписи (1 – Над линией, 2 – По линии, 4 – Под линией)

" T " – атрибуты текста, признак центрирования (0 – Плотный слева, 1 – Разрядка по буквам, 2 – Точка-буква, 3 – Вектор-буква, 4 – Плотный справа, 5 – Плотный по центру, 6 – Разрядка по словам, 7 – Выноска)

Переменные для работы с объектно-ориентированной моделью

" unk(n) " – поиск объектов с характеристикой «unknown», где«n» - номер характеристики

" O " – характер локализации класса объекта в объектно-ориентированной модели (*new)

" dst(role_type)=n " – поиск целевого объекта с наличием указанного типа связи, где “n” – количество связей (значения role_type: 1 – ассоциация, 2 – агрегация, 3 – композиция, 4 – наследование). Пример условия поиска целевого объекта с типом связи «композиция» и количеством связей равным 4: dst(3)=4

" dst(“role_name”)=n " – поиск целевого объекта с указанной связью, где “n” – количество связей, а “rol_name” – название акронима связи

" src(role_type)=n " – поиск исходного объекта с наличием указанного типа связи, где “n” – количество связей (значения role_type: 1 – ассоциация, 2 – агрегация, 3 – композиция, 4 – наследование). Пример условия поиска исходного объекта с типом связи «композиция» и количеством связей равным 4: src(3)=4

" src(“role_name”)=n " – поиск исходного объекта с указанной связью, где “n” – количество связей, а “rol_name” – название акронима связи

4. Команды для контроля характеристик:

" TEXT " – анализ символов текстовой строки в характеристике (1 – все цифры, 2 – все строчные буквы, 3 – все ЗАГЛАВНЫЕ буквы)

" CHAR " – анализ первых символов текстовой строки в характеристике (1 – первая цифра, 2 – первая буква строчная, 3 – первая буква ЗАГЛАВНАЯ)

" LEN " – количество символов в значении характеристики, пример условия: LEN(9)<>4 (количество символов в строке не равно 4)

" TYPE " – тип характеристики, пример условия: TYPE(9)=3 (0-byte, 1-word, 2-int, 3-long, 4-time, 5-data, 6-float, 7-single, 8-angle, 9-string, 10-dbase, 11-enum, 12-logic, 13-link, 14-double, 15-unicode, 16-list, 17-text, 18-color, 19-int64, 20-number, 21-enumw)

"" – кавычки без команды – поиск характеристики, значение которой состоит только из пробелов

" DT " – количество характеристик DataType у объекта, пример условия: dt(301)=2 (количество характеристик 301 с типом DataType у объекта равно 2)

 

Примеры использования типовых условий фильтра:

 

Простые выражения:

1. nil(9)=0 – объекты, у которых есть 9-я характеристика;

2. nil(9)=1 – объекты, у которых отсутствует 9-я характеристика;

3. @401="*город*" – объекты, у которых в тексте 401-й характеристики встречается слово «город»;

4. @401<>"*город*" – все объекты, у которых в тексте 401-й характеристики нет слова «город»;

5. @262="бер*" – значение 262-й характеристики начинается на «бер»

6. @9="???ий" *" – объекты с окончанием «ий» и с количеством символов равным 5 в тексте 9-й характеристики;

7. @100="*к^#" – объекты с текстом в 100-й характеристике с буквой "к", после которой стоит цифра;

8. text(100)=1 – все символы в 100-й характеристике цифры

9. char(601)=1 – первый символ в 601-й характеристике цифра

10. char(601)=2 – первый символ в 601-й характеристике строчная буква

11. type(7)=9 – тип 7-й характеристики «string»

12. type(12)<>3 – тип 12-й характеристики не «long»

13. len(9)<4 – количество символов в строке меньше 4

14. @1>80 – объекты, с числовым значением 1-й характеристики больше 80

15. @4=127.5 – объекты со значением числовой 4-й характеристики равной «127.5»

16. @u=2 – выбрать только объекты слоёв без дочерних объектов

17. @z=1 – выбрать объекты с характеристикой «Z»

18. @c=0 – выбрать объекты у которых нет дочерних объектов

19. @c>1 – выбрать объекты у которых есть дочерние объекты (количество дочерних объектов больше 1)

20. @9='*"*' – объекты с кавычками в 9-й характеристике (вместо обычных кавычек в выражениях можно использовать символ одинарной кавычки, если требуется искать значения характеристик, которые содержат обычные кавычки)

21. @9=<>'^(*' – выбор объектов с 9-й характеристикой, где строка не начинается с открывающей скобки, но внутри строки может быть слово в скобках.

 

Сложные выражения:

1. (nil(1)=1)&(@U<>3) – объекты слоёв без 1-й характеристики, кроме дочерних;

2. (nil(100)=0)&(nil(601)=1) – объекты у которых есть характеристика с номером 100, но нет 601-й характеристики.

3. (@601="^$^#*")&(@601<>"* *") – объекты с номером дороги в 601-й характеристике типа «М16» без пробелов после номера (не указан тип названия дороги после номера дороги, если требуется давать названия по образцу «М16 шоссе»)

4. (@601="*.*")!(@601="^$ *")!(@601="* ^$ *") – объекты с символом «.» или с одной буквой в начале строки или с одной буквой в середине строки в 601-й характеристике (поиск сокращений в названии улицы типа «А.Пушкина улица» или «А Пушкина улица» или «улица А Пушкина»)

5. (@G=1)&(@H=5) – объекты типа «Текст» с параметрами подписи «По линии» и «Плотный по центру». Аналогичное условие с альтернативными переменными: (@Y=2)&(@T=5)

6. (nil(100)=0)&(text(100)<>1) – объекты с наличием 100-й характеристики, в которых не все символы цифры (поиск номеров домов с буквенными символами)

 

Работа с комплексными атрибутами в фильтре

Комплексные атрибуты имеют иерархическую структуру, т.е. сам комплексный атрибут в отличие от простого атрибута не имеет непосредственного значения, а только объединяет (группирует) другие атрибуты и размещает их «внутри» себя. Комплексный атрибут объединяет как простые атрибуты, так и другие комплексные. На рисунке 1 представлена схема организации объекта с простыми и комплексными атрибутами.

Рисунок 1

Объект, представленный на рис.1, имеет 3 атрибута:

- 11 атрибут имеет значение 1

- 13 атрибут имеет значение 3

- 12 – комплексный атрибут в двух экземплярах.

Комплексный атрибут номер 12 объединяет два атрибута:

- 14 – простой атрибут

- 15 – комплексный атрибут

Первый экземпляр атрибута 12 имеет одно значение атрибута 14=4 и два значения 15 атрибута. Атрибут 15, в свою очередь, состоит из простых атрибутов 16 и 17, имеющие конкретные значения в своих экземплярах.

Таким образом, атрибуты данного объекта организованы в виде трехуровневой иерархии, при этом в условиях семантики фильтра для отбора объектов могут анализироваться только значения простых атрибутов. В данном примере это атрибуты: 11, 13, 14, 16 и 17. При этом атрибут 14 имеет два значения (4 и 5), атрибуты 16 и 17 имеют по три значения каждый. Для того, чтобы в логическом выражении условия по семантике указать значение конкретного экземпляра одного из этих атрибутов, необходимо описать точки ветвления в дереве атрибутов, которыми являются комплексные атрибуты 12 и 15.

Для описания точек ветвления в логическом выражении фильтра введен символ знака вопроса, размещаемый перед номером комплексного атрибута (в данном примере -?12 или?15).

Рассмотрим примеры описания условий отбора представленного на рис.1 объекта в выборку по его характеристикам:

Пример 1. Для атрибутов первого уровня: (@11=1)! (@13=3)

Пример 2. Для анализа в условии 14 атрибута, расположенного на втором уровне иерархии, необходимо указать комплексный атрибут, в который он входит, т.е. опуститься на второй уровень иерархии:

(?12 @14=4) или

(?12 (@14=4)! (@14=5))

Пример 3. Для анализа атрибутов 3 уровня (16 и 17) необходимо сначала опуститься на второй уровень, а затем на третий уровень иерархии:

(?12 @14=4)&(?15 @16=2)

По данному условию будет выбран тот экземпляр 12 атрибута, в котором 14 атрибут имеет значение =4, а затем тот 15 атрибут, внутри которого атрибут 16=2.

 

Анализ характеристик перечислимого типа с множественностью больше 1 (работает для типов list, dbase, enumw)

1. Обычный запрос на поиск объектов, которые содержат значения «3» или «5» в характеристике перечислимого типа № 262:

(@262=3)!(@262=5) – 262-я характеристика содержит только значение «3» ИЛИ только значение «5».

2. Дополнительные варианты синтаксиса выражения для анализа характеристик перечислимого типа:

"3,5"->@262 – 262-я характеристика содержит значения «3» И «5» в списке значений;

"3,5"->@262=0 – 262-я характеристика содержит другие значения кроме «3» И «5» в списке значений;

@262->"3,5" – 262-я характеристика содержит значение «3» ИЛИ «5» в списке значений и не допускает наличия других значений в списке значений.

@262->"3,5"=0 – 262-я характеристика содержит другие значения кроме «3» И «5» в списке значений

 

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

Если требуется выбирать объекты только по наличию или отсутствию характеристик, то в блоке «Семантика» устанавливается опция «наличие» или «отсутствие», а в блоке «Условие» указывается номер характеристики. Если требуется указать несколько характеристик, то их номера указываются через запятую:

 

1. Пример выборки объектов, у которых отсутствует 4-я характеристика

 

2. Пример выборки объектов, у которых есть 4-я и 9-я характеристики

 

Блок параметров фильтра «Фрагмент» (используется, при нажатии кнопки «Применить»[u66]).

· «Карта» – при нажатии кнопки фильтра «Применить» сохраняются текущие параметры фильтра и запускается процесс фильтрации объектов по карте

· «Прямоугольник» – при нажатии кнопки фильтра «Применить» сохраняются текущие параметры фильтра, программа переходит в режим выделения объектов прямоугольником аналогично инструменту , при этом курсор на карте принимает вид , после чего прямоугольным выделением указывается область на карте, по которой будет запущен процесс фильтрации объектов.

· «Круг» – при нажатии кнопки фильтра «Применить» сохраняются текущие параметры фильтра, программа переходит в режим выделения объектов полигоном аналогично инструменту в режиме цифрования «Эллипс», при этом курсор на карте принимает вид , после чего указываются центр круга и радиус, в пределах которого будет запущен процесс фильтрации объектов.

· «Полигон» – при нажатии кнопки фильтра «Применить» сохраняются текущие параметры фильтра, программа переходит в режим выделения объектов полигоном аналогично инструменту , при этом курсор на карте принимает вид , после чего произвольным выделением указывается область на карте, по которой будет запущен процесс фильтрации объектов.

· «Объект» – при нажатии кнопки фильтра «Применить» сохраняются текущие параметры фильтра, программа переходит в режим выделения объектов другим объектом аналогично инструменту , при этом курсор на карте принимает вид, как в режиме захвата метрики , после чего на карте указывается объект с замкнутым контуром, в пределах которого будет запущен процесс фильтрации объектов.

 

Блок параметров фильтра «Точки».

 

Ø «все точки» – в выборку будут включены только те объекты, все точки которых попали в указанную область;

Ø «несколько точек» – в выборку будут включены все объекты, у которых хотя бы одна точка попала в указанную область;

Ø «пересечение» – в выборку будут включены те объекты, которые пересекают указанную область;

Ø «рассогласование» – выборку будут включены только те объекты, которые не согласованы с указанной областью;[u67]

Ø «нет точек» – в выборку будут включены только те объекты, у которых ни одна точка не попадает в указанную область;

Ø «вне рамки» – в выборку будут включены объекты, находящиеся за рамкой карты;

Ø «-» – при фильтрации не учитываются параметры блока «Точки».

 


Поделиться с друзьями:

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.056 с.