Перейти к основному содержимому
Версия: 6.x

Инструкция =

Инструкция = - создание нового свойства.

Синтаксис

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;