Skip to end of metadata
Go to start of metadata

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

Синтаксис

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

propertyOption1 ... propertyOptionN

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

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

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

IN groupName

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

groupName - имя группы. Составной идентификатор.

MATERIALIZED

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

TABLE tableName

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

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

INDEXED

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

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] - пользователь выбрал в контекстном меню свойства на форме заданный пункт. Также при необходимости можно задать заголовок этого пункта меню (строковый литерал). Если этого не сделать, то, по умолчанию, он будет равен заголовку действия.

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

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

Примеры

1
2
3
4
5
 cost 'Стоимость' (i) = DATA NUMERIC[12,3] (Item);		// cвойство задано контекстно-независимым оператором-свойством DATA
weightedSum 'Взвешенная сумма' (a, b) = 2*a + 3*b; 		// cвойство задано выражением 
diff = a - b; 											// заголовком этого свойства будет 'diff', а параметрами - (a, b)
 
teamName 'Название команды' = DATA BPSTRING[30](Team) IN baseGroup TABLE team; // свойство задано оператором DATA с указанием дополнительных опций свойства

  • No labels