Вычисляемый атрибут. Пример: формула для вычисления связанных записей
В данной статье описан пример автоматического назначения клиента для текущего пользователя. Существует база данных клиентов и менеджеров компании. Каждому менеджеру привязывается клиент.
Системные имена шаблонов записи и атрибутов, задействованных в примере, приведены в таблице:
Шаблон записи | Атрибуты |
---|---|
Request (Заявка) | ClientForCurrentUser — клиент |
Cp (Контактные лица) | Cp — деловой партнер User — пользователь |
Clients (Деловые партнеры) | Name — наименование делового партнера (ФИО) |
Атрибут «ClientForCurrentUser» шаблона записи «Request» вычисляется на основании данных, хранящихся в шаблоне записи «Cp».
В вычисляемом выражении будут использованы следующие функции и операторы:
- функция «EQUALS()» для выбора записи, которая соответствует текущему пользователю;
- функция «USER()» для определения текущего пользователя;
- оператор «from» для перечисления всех записей из шаблона записи «Cp»;
- оператор «where» для выбора записей, которые соответствуют текущему пользователю;
- оператор «select» для выбора значений атрибута «Name».
Пошаговая инструкция:
1. Создайте и настройте шаблоны записей и атрибуты.
2. В шаблоне записи «Request» откройте созданный атрибут «ClientForCurrentUser».
3. Отметьте флаг «Вычисляемый» и в поле «Вычисляемое выражение» введите следующее:
from a in db->cp where EQUALS(a->user,USER()) select a->cp->name |
4. Нажмите кнопку «Сохранить».
Синтаксис
Элемент | Значение |
---|---|
from a in db->cp | Объявление локальной переменной а. Объявление шаблона записи «Cp» в качестве источника данных: db->cp. Перечисление всех записей из шаблона записи «Cp». |
where EQUALS(a>user,USER()) | Выбор записи, значение «User» в которой соответствует текущему пользователю. Функция «User()» возвращает текущего пользователя, если вычисляемый атрибут принадлежит типу данных «Пользователь». |
select a->cp->Name | Выбор значений атрибута «Name» в соответствующих записях и передача этих значений в качестве аргумента. Постфикс «->» в атрибуте «Cp» используется для того, чтобы вызвать данные связанного шаблона записи «Name». |
Эта статья была полезна 1 чел.