Инструкция =
Инструкция =
- создание нового свойства.
Синтаксис
name [caption] [(param1, ..., paramN)] = expression [options];
name [caption] [(param1, ..., paramN)] = contextIndependentOperator [options];
name [caption] [(param1, ..., paramN)] = NATIVE returnClass (argClass1, ..., argClassM) [options];
Описание
Инструкция =
объявляет новое свойство и добавляет его в текущий модуль.
При создании свойства инструкция имеет две основные формы:
- Первая форма описывает и создает свойство с помощью выражения.
- Вторая форма описывает свойство с помощью одного из контекстно-независимых операторов-свойств, которые не могут быть частью выражения.
Третья форма с ключевым словом NATIVE
используется в некоторых системных модулях. Она предназначена для объявления отдельных системных свойств, которые создаются до инициализации модулей.
Также при объявлении свойства может задаваться набор его опций.
Параметры
-
name
Имя свойства. Простой идентификатор.
-
caption
Заголовок свойства. Строковый литерал. Если заголовок не задан, то заголовком свойства будет являться его имя.
-
param1, ..., paramN
Список параметров. Каждый из них задается типизированным параметром. Эти параметры далее могут быть использованы в выражении описывающем создаваемое свойство (а также в некоторых опциях).
Если параметры не заданы явно, то они будут автоматически вычислены при обработке выражения. Порядок параметров будет соответствовать порядку появления параметров в выражении. Рекомендуется явно задавать параметры свойства. Это позволит найти опечатки и другие ошибки в объявлении (например, несоответствие количества указанных параметров с количеством параметров созданного свойства).
-
expression
Выражение, описывающее и создающее свойство.
-
contextIndependentOperator
Контексто-независимый оператор-свойство, описывающий и создающий свойство.
-
options
-
returnClass
Идентификатор класса возвращаемого значения свойства.
-
argClass1, ..., argClassM
Список идентификаторов классов аргументов свойства.
Примеры
// cвойство задано контекстно-независимым оператором-свойством DATA
cost 'Стоимость' (i) = DATA NUMERIC[12,3] (Item);
// cвойство задано выражением
weightedSum 'Взвешенная сумма' (a, b) = 2*a + 3*b;
// заголовком этого свойства будет 'diff', а параметрами - (a, b)
diff = a - b;
// свойство задано оператором DATA с указанием дополнительных опций свойства
teamName 'Название команды' = DATA BPSTRING[30](Team) IN baseGroup TABLE team;