Выражение представляет собой набор инструкций по произведению определенных действий (операций) над объектами (операндами). Операции различаются по типу операндов и типу результата выполнения операции – логические, арифметические, строковые (текстовые) и т.д. Выражения в системе используются для наложения различных условий на данные при поиске (фильтрации) данных, отборе данных для отчетов, проверке правильности ввода данных и т.д. Для создания и редактирования предназначен специальный программный модуль - редактор выражений. Редактор предоставляет два режима работы:
режим графического конструктора, с которым могут работать пользователи, не знакомые с языками программирования (подраздел 2.2);
режим текстового редактора для создания выражений на языке XML (подраздел 2.7).
Подраздел 2.1 описывает структуру и правила создания выражений. При этом используется терминология и обозначения, принятые в графическом конструкторе.
Структура выражения
Возможные операции над объектами можно условно разделить на две группы: операции и функции. Деление условное, т.к. функция – тоже операция над данными, но операции и функции, как правило, имеют различное написание (синтаксис):
операция: ОПЕРАНД1 ОПЕРАТОР ОПЕРАНД2,
функция: ФУНКЦИЯ (АРГУМЕНТ1, АРГУМЕНТ2,
Здесь ОПЕРАТОР – это условное обозначение операции, ФУНКЦИЯ – заголовок (имя) функции.
Выражения могут быть вложенными, т.е. в качестве операнда или аргумента может выступать как функция, так и выражение.
В качестве операндов выражений могут выступать объекты, перечисленные в Табл. 2.1. Операнды могут содержать значения (данные) различных типов (типы данных описаны в п. 1.2 Руководства).
Все возможные виды операторов и описание соответствующих им операций приведены в Табл. 2.2, перечень функций – в Табл. 2.3
Табл. 2.1 Виды операндов выражений
Операнд | Элемент интерфейса конструктора | Описание |
Атрибут сущности | Панель атрибутов | Общая информация о сущностях и их атрибутах приведена в п. 1 настоящего руководства. Использование атрибутов сущностей в выражениях описано в п.2.3.1. |
Константное значение (константа) | Панель инструментов, | Величина, значение которой не меняется в процессе выполнения программы и фиксируется при создании условия. Применение константных значений описано в п. 2.3.2. |
Системный параметр | Панель инструментов, | Параметр, значение которого определяется в момент вычисления результата выражения. Перечень системных параметров ограничен и создается на этапе разработки системы. Применение системных параметров описано в п. 2.3.3. |
Пользовательский параметр | Панель инструментов, | Пользовательский параметр, значение которого запрашивается приложением у пользователя в момент вычисления результата выражения. Применение пользовательских параметров описано в п. 2.3.4. |
Табл. 2.2 Операторы, используемыые в выражениях
Элемент интерфейса | Оператор | Тип операнда | Тип результата | Описание |
---|---|---|---|---|
Логическое ИЛИ | Лог. | Лог. | Объединение операндов – логических значений или выражений (условий) через «или», т.е. положительным результатом выражения будет выполнение любого из этих условий. | |
Логическое И | Лог. | Лог. | Объединение условий через «и», т.е. положительным результатом выражения будет одновременное выполнение всех этих условий. | |
Похоже | Строка | Лог. | Возвращает положительный результат, если значение удовлетворяет определенному шаблону. Подробное описание оператора и применение шаблонов приведено в п. 2.4.1 Руководства. | |
Равно | Число, строка | Лог. | Точное равенство операндов – чисел, строк, дат и т.д. Регистр символов строки данной операцией игнорируется, т.е. строки «Текст» и «текст» равны. | |
Не равно | Число, строка | Лог. | Операнды не должны быть равны друг другу. В случае строк это означает, что строки не должны совпадать. | |
Меньше или равно | Число | Лог. | Значение первого (левого) операнда должно быть меньше или равно значению второго (правого). | |
Больше или равно | Число | Лог. | Значение первого (левого) операнда должно быть больше или равно значению второго (правого). | |
Меньше | Число | Лог. | Значение первого (левого) операнда должно быть меньше значения второго (правого). | |
Больше | Число | Лог. | Значение первого (левого) операнда должно быть больше значения второго (правого). | |
In |
Входит в… | Любой | Лог. | Значение первого операнда должно быть равно значению одного из элементов перечисления (списка значений) второго операнда, см. п. 2.4.2 |
Not | Не | Лог. | Лог. | Оператор отрицания, применяется только в связке с другими операторами. См. п.2.4.3. |
Is | I | Объект | Лог. | Оператор накладывает условие на сущность, на которую указывает атрибут-ссылка. Подробно см. п.2.4.4. |
Exact IS | Именно это | Объект | Лог. | Оператор накладывает условие на сущность, на которую указывает атрибут-ссылка. Подробно см. п.2.4.5. |
Сложение | Число, Строка | Число, Строка | Арифметический оператор сложения, либо оператор сложения (конкатенации) строк. | |
Вычитание | Число | Число | Арифметический оператор вычитания. | |
Умножение | Число | Число | Арифметический оператор умножения. | |
Деление | Число | Число | Арифметический оператор деления. | |
Скобки | - | - | Скобки определяют очередность вычислений (см. п. 2.3.7). |
Табл. 2.3 Операторы, используемыые в выражениях
Элемент интерфейса | Функции | Тип аргумнта | Тип результата | Описание |
---|---|---|---|---|
Разность дат | Дата | Целое число | Функция, позволяющая вычислить разность между двумя датами в различных единицах измерения – годах, месяцах, днях и т.д. Применение функции описано в п. 2.5.1. | |
Прибавить к дате | Дата | Дата | Функция, позволяющая вычислить дату путем добавления периода к исходной дате. Период может быть выражен в годах, месяцах, днях и т.д. Применение функции описано в п.2.5.2. | |
Получить часть даты | Дата | Целое число | Функция получения части даты в виде числа (год, месяц, номер недели в году и т.д.). Применение функции описано в п.2.5.3. | |
Подстрока | Текст | Текст | Функция получения заданной части текстовой строки (подстроки). Применение функции описано в п.2.5.4. | |
Длина строки | Текст | Целое число | Функция вычисления длины строки в символах. Применение функции описано в п.2.5.5. | |
Значение функции | Число | Число | Вычисление математической функции. Руководство содержит описание наиболее употребительных функций: · Получение абсолютного значения (п.2.5.6) | |
Привести к типу | Любой | Любой | Функция позволяет преобразовать значение аргумента функции к требуемому типу данных. Применение функции описано в п.2.5.7. | |
Удовлет-воряет выражению | Текст | Целое число | Функция позволяет анализировать значение аргумента с помощью регулярных выражений. Применение функции описано в п.2.5.8. | |
Условие | Логический | Любой | Позволяет вставить в выражение условную конструкцию вида «Если … тогда … иначе …». Применение функции описано в п.2.5.9. | |
Количество элементов в коллекции | Объект | Целое число | Функция подсчета количества элементов в указанной коллекции элементов типа «Объект». Применение функции описано в п.2.6.1. | |
Выбрать | Сущ-ность | Коллекция | Функция позволяет сделать выборку значений определенного атрибута заданной сущности. Применение функции описано в п.2.6.2. | |
Существует | Сущность | Логический | Функция позволяет проверить факт существования данных сущности, удовлетворяющих определенным условиям. Применение функции описано в п.2.6.3. | |
Поиск по дереву | Сущ-ность | Логический | Функция анализа дерева наследования. Применение функции описано в п.2.6.4. |