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

Опции свойства

При объявлении свойства в инструкции = в конце объявления может указываться некоторый набор опций свойства.

Синтаксис

Опции перечесляются друг за другом в произвольном порядке через пробел или переводы строк:

propertyOption1 ... propertyOptionN

Поддерживается следующий набор опций (синтаксис каждой опции указывается в отдельной строке):

IN groupName
viewType
ON eventType { actionOperator }
CHANGEKEY key [SHOW | HIDE]
MATERIALIZED
TABLE tableName
INDEXED [LIKE | MATCH]
NONULL [DELETE] eventClause
AUTOSET
CHARWIDTH width [FLEX | NOFLEX]
REGEXP rexpr [message]
ECHO
DEFAULTCOMPARE [compare]

Описание и параметры

  • MATERIALIZED

    Ключевое слово, помечающее свойство как материализованное. Такие свойства будут храниться в полях таблицы базы данных.

  • TABLE tableName

    Указание таблицы, в которой будет храниться свойство. Количество ключей таблицы должно совпадать с количеством аргументов свойства, и классы аргументов должны подходить к классам ключей таблицы. Если таблица не задана, свойство автоматически будет помещено в "ближайшую" существующую в системе таблицу.

    • tableName

      Имя таблицы. Составной идентификатор.

  • INDEXED

    Ключевое слово, указание которого создает индекс по этому свойству. Аналогично использованию инструкции INDEX.

    • LIKE

      Ключевое слово, указание которого создает вместо обычного индекса GIN индекс.

    • MATCH

      Ключевое слово, указание которого создает вместо обычного индекса два: GIN индекс и GIN индекс с to_tsvector.

  • NONULL [DELETE] eventClause

    Добавление ограничения определенности. Если это ограничение в результате каких-то изменений для некоторых объектов нарушается, то будет либо показано соответствующее сообщение, либо при указании DELETE такие объекты будут удалены.

    • DELETE

      Ключевое слово, при указании которого в случае, если свойство становится равным NULL, будут удалены объекты, которые являются в данном случае аргументами свойства.

    • eventClause

      Блок описания типа события. Описывает событие по которому будет выполняться проверка свойства на NULL.

Блок интерактивного представления

  • viewType

    Указание типа представления свойства при добавлении на форму.

    • GRID - колонка таблицы
    • TOOLBAR - тулбар
    • PANEL - панель

    По действию аналогично указанию опции viewType в блоке свойств инструкции FORM. Соответственно если эта опция не указана ни в опциях свойств, ни в блоке свойств непосредственно на форме, используется тип представления по умолчанию для группы отображения, добавляемого на форму свойства.

  • ON eventType { actionOperator }

    Указание действия, которое будет обработкой по умолчанию некоторого события формы всех интерактивных представлений этого свойства. Могут быть переопределены в блоке свойств инструкции FORM.

    • eventType

      Тип события формы. Задается одним из следующих вариантов:

      • CHANGE - происходит при попытке изменения значения свойства.
      • CHANGEWYS - происходит при попытке изменении значения свойства с помощью специального механизма ввода.
      • GROUPCHANGE - происходит при попытке изменения значения свойства для всех объектов в таблице (групповое редактирование).
      • EDIT - происходит при попытке редактировать объект, который является значением этого свойства.
      • CONTEXTMENU [caption] - пользователь выбрал в контекстном меню свойства на форме заданный пункт. Также при необходимости можно задать заголовок caption этого пункта меню (строковый литерал). Если этого не сделать, то, по умолчанию, он будет равен заголовку действия.
    • actionOperator

      Контекстно-зависимый оператор-действие. Оператор, описывающий выполняемое по событию действие. В качестве параметров оператора можно использовать параметры самого свойства.

Блок значений по умолчанию инструкции DESIGN

  • CHARWIDTH width [FLEX | NOFLEX]

    Указание количества символов значения свойства, которые должны быть видны пользователю. Устанавливает значение для дизайна по умолчанию, может быть переопределено в инструкции DESIGN.

    • width

      Количество символов. Целочисленный литерал.

    • FLEX

      Ключевое слово. Если указано, коэффициент расширения значения свойства автоматически устанавливается равным его базовому размеру.

    • NOFLEX

      Ключевое слово. Если указано, коэффициент расширения значения свойства автоматически устанавливается равным нулю.

  • REGEXP rexpr [message]

    Указание регулярного выражения, которому должно соответствовать значение свойства после редактирования. Устанавливает значение для дизайна по умолчанию, может быть переопределено в инструкции DESIGN.

    • rexpr

      Строковый литерал, описывающий регулярное выражение. Правила задания аналогичны принятым в языке Java.

    • message

      Строковый литерал, описывающий сообщение, которое будет показано пользователю в случае, если он введет значение, не соответствующее регулярному выражению. Если не указывается, то будет показано сообщение по умолчанию.

  • ECHO

    Ключевое слово, указание которого приведет к отображению символов звездочки * вместо значения свойства. Используется, например, для паролей. Может быть переопределено в инструкции DESIGN.

  • CHANGEKEY key [SHOW | HIDE]

    Указание комбинации клавиш, при нажатии которой будет начато редактирование свойства. Устанавливает значение для дизайна по умолчанию, может быть переопределено в инструкции DESIGN.

    • key

    Строковый литерал, описывающий комбинацию клавиш. Принцип задания аналогичен способу задания параметра в методе Java-класса Keystroke.getKeystroke(String).

    • SHOW

      Ключевое слово, при указании которого комбинация клавиш будет отображаться в заголовке свойства. Используется по умолчанию.

    • HIDE

      Ключевое слово, при указании которого комбинация клавиш не будет отображаться в заголовке свойства.

  • DEFAULTCOMPARE [compare]

    Указание для свойства типа фильтра по умолчанию.

    • compare

      Тип фильтра по умолчанию. Строковый литерал. Может принимать следующие значения: =, >, <, >=, <=, !=, CONTAINS, LIKE. По умолчанию принимает значение = для всех типов данных кроме строковых регистронезависимых, для которых принимает значение CONTAINS. При включенной настройке System.defaultCompareForStringContains по умолчанию принимает значение CONTAINS для всех строковых данных независимо от регистрозависимости. Может быть переопределено в инструкции DESIGN.

Примеры

// 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;