Атрибуты связанных записей: Difference between revisions
(Created page with "{{Stamp|2017-11-07|4.4.0|1.2.0}} Для поля Link To Entry можно добавить один или несколько атрибутов. Ат...") |
mNo edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 3: | Line 3: | ||
Определение атрибутов выполняется на карточке редактирования поля [[Link To Entry field|Link To Entry]]: карточка редактирования > вкладка '''Атрибуты'''. | Определение атрибутов выполняется на карточке редактирования поля [[Link To Entry field|Link To Entry]]: карточка редактирования > вкладка '''Атрибуты'''. | ||
Значения атрибутов отображаются непосредственно в поле | Значения атрибутов отображаются непосредственно в поле [[Link To Entry field|Link To Entry]] и заполняются после добавления новой записи в поле. | ||
==Пример использования атрибутов== | ==Пример использования атрибутов== | ||
Line 75: | Line 75: | ||
$sum('items.price' , 'items?count' , '@mul' ); | $sum('items.price' , 'items?count' , '@mul' ); | ||
</source> | </source> | ||
[[Category:ru]] |
Latest revision as of 13:56, 17 August 2021
Для поля Link To Entry можно добавить один или несколько атрибутов. Атрибут похож на поле записи, он имеет имя и тип. Определение атрибутов выполняется на карточке редактирования поля Link To Entry: карточка редактирования > вкладка Атрибуты.
Значения атрибутов отображаются непосредственно в поле Link To Entry и заполняются после добавления новой записи в поле.
Пример использования атрибутов
Например у нас есть библиотека Items, содержащая информацию о товарах. Также у нас есть библиотека Order содержащая информацию о заказах. В библиотеке Order есть поле типа Link To Entry в которое добавляются товары из библиотеки Items. Мы можем к полю Link To Entry добавить числовой атрибут Count, который будет отображать количество товара в заказе.
Доступ к атрибутам из скриптов
Триггеры и Действия
Для получения значения атрибута связанной записи, необходимо сначала получить соответствующую связанную запись через метод field(name) объекта Entry. Для связанной записи доступны метод получения значения атрибута - attr(name) и метод установки атрибута setAttr(name , value).
entry().field(“field_name”)[0].attr(“attribute_name”)
entry().field(“field_name”)[0].setAttr(“attribute_name” , newValue);
Пример получения значения атрибута Count у поля Items:
//Пример получения значения атрибута Count у поля Items:
var count = entry().field(“Items”)[0].attr(“Count”);
//Пример установки значения атрибута Date у поля Items:
entry().field(“Items”)[0].setAttr(“Date” , new Date());
JavaScript поле
В поле JavaScript доступно только получение значения атрибута, это можно сделать через метод attr связанной записи:
field(“field_name”)[0].attr(“attribute_name”)
Пример скрипта получения стоимости элемента добавленного в поле Items. Элемент в Items имеет поле Price, поле Link To Entry имеет атрибут Count:
field(“Items”)[0].attr(“Count”) * field(“Items”)[0].field(“Price”)
Доступ к атрибутам в вычисляемых полях
Доступ к значению атрибута в Calculation field выполняется с помощью символа - ?:
#{link field name?attribute name}
Например для доступа к атрибуту Count используем следующий синтаксис:
#{items?count}
Если поле содержит несколько ссылок на записи, то можно использовать индекс для доступа к атрибуту:
#{items@0?count} , #{items@1?count}
Агрегация атрибутов в вычислимых полях
Если поле Link To Entry содержит несколько ссылок на записи, каждая из которых имеет свое значение атрибута, то к этим атрибутам можно применить одну из функций агрегации, например для вычисления суммы всех атрибутов.
Сумма всех атрибутов поля:
$sum('link field name?attribute name')
Функции агрегации поддерживают попарные операции между различными полями связанных записей и атрибутами:
//Данная функция умножает поле linked_feld_name каждой связанной записи на соответствующей этой связи атрибут attribute_name.
//Набор чисел полученный после умножения - суммируется.
$sum('link_field_name.linked_feld_name','link_field_name?attribute_name', ‘@mul’)
Например, для вычисления общей суммы заказа можно воспользоваться формулой:
//Данная формула попарно перемножает значение поля price у связанной записи и значение соответствующего связи атрибута count.
//Набор чисел полученный после умножения - суммируется.
$sum('items.price' , 'items?count' , '@mul' );