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