Содержание статьи
Создание пользовательского атрибута
В предыдущей статье мы рассмотрели что такое атрибуты. Теперь переходим непосредственно с работой над их аргументами и описанием.
Для начала создадим пользовательский атрибут с произвольным именем. Например test_1:
Описание атрибута
У каждого атрибута есть аргумент и описание (Details). В аргументы вводятся формулы, а описание позволяет задать единицы измерения, наименование параметра, а также видимость этого параметра в окне параметров. Вот так выглядят эти настройки:
Так как это важные настройки, давайте разберём каждый пункт подробнее:
- Единицы (Units) задают тип данных, который получится после выполнения формулы в аргументе атрибута. Например, если выполняется работа с текстовыми или смешанными данными и на выходе значение должно быть текстовым, то выбираем в этом пункте значение "Текст". Если это будут вычисления, где на выходе должно получится число, то выбираем из списка "Сантиметры" (если пользуетесь метрической системой) или Дюймы (если имперская система).
- Пункт "Правило отображения" (Display rule) отвечает за то, как атрибут будет отображаться в окне параметров. Обычно тут есть 4 пункта:
- Пользователи не могут видеть этот атрибут - атрибут не будет отображаться в окне параметров.
- Пользователи могут видеть этот атрибут - атрибут и его аргумент будут видны в окне параметров, но изменить его значение нельзя.
- Пользователи могут редактировать как текстовое поле - атрибут и его аргумент будут видны в окне параметров, значение агрумента можно изменить, вписав другое.
- Пользователи могут выбирать из списка - в окне параметров будет отображатся атрибут и список значений, где можно выбрать нужный пункт.
- Отобразить подпись - сюда можно вписать подпись, которая будет отображаться в виде имени атрибута в окне параметров. Это удобно, т.к.имя атрибута довольно редко понятно конечному пользователю из-за особенностей и правил его составления.
- Отображать здесь - формат в котором аргумент атрибута будет отображён в окне параметров. Если формула возвращает текстовые данные, то выбираем текст. Если числовые, то миллиметры, градусы и т.д. Всё зависит от того, как нужно представить данные пользователю. Важно помнить, что если в первом пункте выставлены сантиметры, а в этом, четвёртом пункте, будут выставлены миллиметры, то отображаться в окне параметров будут именно миллиметры (значение атрибута в сантиметрах будет умножено на 10, чтобы отображение было в миллиметрах), а в атрибутах работа будет продолжена в сантиметрах. Не запутайтесь!
Аргумент атрибута
В аргументах атрибутов и происходит вся магия динамических компонентов. Сюда можно не просто ввести какое-либо значение, но и вписать формулу, используя широкий асортимент функций. Все доступные функции находятся во вкладке "Функции" в этом же окне атрибутов. Подробное описание каждой функции читайте в соответствующих статьях.
Для формул есть несколько правил:
- Формула всегда начинается со знака равно (=), кроме предустановленного атрибута OnClick, который не поддерживает использование в нём формул.
- Текст в формулах всегда должен содержаться в кавычках.
- Можно объединить "строку" со значением атрибута с помощью знака амперсанда (&). Например, для отображения текстовой строки "Цена 20 рублей", значение атрибута может быть таким: ="Цена "&price&" рублей" (где "price" это имя атрубута в котором записано значение 20).
- Символ (#) означает ошибку в формуле.
Пример работы с атрибутами
Давайте в качестве примера создадим ещё несколько пользовательских атрибутов, которые будут содержать некоторые значения. Настроим их отображение в окне параметров. Затем в другом атрибуте проведём вычисления формулой и тоже отобразим его в окне параметров.
Пусть это будет нахождение длины гипотенузы в треугольнике. Определение звучит так: "Сумма квадратов катетов равна квадрату гипотенузы". Поэтому создаём 3 пользовательских атрибута:
- catet_a
- catet_b
- hypotenuse
Подписываем их соответственно "Катет А", "Катет В" и "Гипотенуза". Везде в описании атрибута выставляем сантиметры и отображаем их в миллиметрах. Катеты пользователь может редактировать как текстовое поле, а гипотенузу пользователь может видеть.
В аргументы катетов записываем любые числовые значения, а в аргумент гипотенузы записываем такую формулу и нажимаем Enter:
=SQRT(catet_a*catet_a+catet_b*catet_b)
Готово! Теперь можно вводить у катетов в окне параметров какие-либо значения и моментально вычислять длину гипотенузы, значение которой отобразится в параметре "Гипотенуза".
P.S. Функция SQRT возвращает положительный квадратный корень из числа.
В следующей статье мы рассмотрим обращение к атрибутам.