Атрибуты поля Назад В начало Вперед

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

<атрибуты-поля> = [ <формат-поля> | [list <список-выбора>] ]
	[, protect | noProtect] [, pickButton | noPickButton]
	[, upCase] [, skip] [, calcButton] [, noAutoSize]
	[, noStatic] [, quickChoice] [, lessNull] [, listBox]
	[, left | centered | right | expand]
	[, delRel | noDel | delDefault] [ image ]
	[, <множество-допустимых-символов>]
	[, <атрибуты-шрифта>] [, spinButton <SPIN-описание> ]
	[, noSetCurrent] [, <шаблон-ввода>];

<формат-поля> - см. "Формат отображения поля. ".

list - задает список выбора. Элементы списка перечисляются через запятую. Конструкция list заключается в квадратные скобки.

<список-выбора> - перечень элементов выбора:

<список-выбора> = <элемент-списка> {, <элемент-списка>};

<элемент-списка> - описание элемента выбора:

<элемент-списка> = [<число>] <строка>

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

Пример. При выборе строки 'item 2' поле value1 получит значение 1, а поле value2 получит значение 20:

value1  : [ list 'item 1', 'item 2', 'item 3' ];
value2  : [ list 10 'item 1', 20 'item 2', 30 'item 3' ];

protect - поле защищено от редактирования. Этот атрибут поле имеет по умолчанию, если таблица, к которой оно относится, не является корневой для видимого элемента, к которому относится поле.

noProtect - делает поле доступным для редактирования. По умолчанию поле доступно для редактирования, если таблица, к которой оно относится, является корневой для видимого элемента, к которому относится поле.

pickButton - добавляет кнопку выбора в поле ввода. При нажатии на кнопку посылается событие cmPick.

noPickButton - запрещает добавление кнопки выбора в поле. Используется при сборке проекта с директивой #StatusLine.

upCase - при вводе пользователем символов они автоматически преобразуются к верхнему регистру.

skip - при переходе по полям курсор не устанавливается на поле, помеченное этим атрибутом.

calcButton - позволяет вводить числовые поля с использованием калькулятора, в т.ч. мышью без использования клавиатуры. Используется с полями типов double, single, word, byte, integer, longInt. Если атрибут задан:

noAutoSize - запрещает автоматическое растягивание колонки при изменении размеров табличного редактора. В анкетном редакторе и в диалоге выдает ошибку при компиляции.

noStatic - придать строке ввода с атрибутом skip внешний вид запрещенной строки ввода (в палитру библиотеки видимых элементов добавлены соответствующие цвета). Этот атрибут можно изменять динамически при помощи функций конфигуратора, как из программы, так и в процессе редактирования конфигурации интерфейса.

quickChoice - показывает, что у данного поля имеется функция быстрого выбора. Вокруг поля с данным атрибутом будет рисоваться желтая рамка. См. "Объект быстрого выбора. ".

lessNull - если это свойство установлено и числовое значение поля равно 0, то вместо 0 отображается пробел.

left, centered, right, expand - устанавливают соответствующее форматирование для поля ввода. Влияют также на заголовок колонки:

delRel, noDel, delDefault - режим удаления подцепки. Подробнее см. описание события cmDelOnProtect.

Режим удаления подцепки включается при нажатии клавиши Del на защищенном от редактирования поле (см. атрибут protect). По умолчанию генерируется событие cmDelOnProtect. Действия по умолчанию можно изменить с помощью атрибутов:

image - данное поле является иконкой. Используется только в табличном и иерархическом редакторах. В анкетном редакторе и в диалоге выдает ошибку при компиляции. Атрибут доступен начиная с Атлантис 5.3.10.Подробнее об использовании атрибута см. в описаниях редакторов:

<множество-допустимых-символов> - множество символов, которые разрешено вводить в данное поле. Может быть указано только для типов char или string.

<множество-допустимых-символов> = [<символ> {, <символ>}]

Пример:

['0','1','2','3','4','5','6','7','8','9']

При задании такого атрибута ввод любого символа кроме цифры будет блокироваться.

<атрибуты-шрифта> - атрибуты шрифта. Синтаксис:

<атрибуты-шрифта> = {font = {
  bold = <булевское-выражение>;
  italic = <булевское-выражение>;
  color = <целочисленное-выражение>;
  backColor = <целочисленное-выражение>;
  } },

Допускается задание атрибутов шрифта при компиляции (константное выражение) и при выполнении, причем последнее может быть с использованием вычисляемого выражения или вызова функции.

Управление атрибутами шрифта осуществляется для каждой отдельной записи. Поскольку в browse есть несколько записей одновременно, раскрасить можно каждую из них.

Для управления цветом шрифта есть специальная палитра дополнительных цветов. Она настраивается из конфигурационного файла. Подробности в документе "Инсталляторы".

Пример.

fields
		KatMC.name : { font = { 
						bold = (PriceList.qty > 0);
						color = if(PriceList.price > 1000, 1, 2);
					}
			}, protect; 

Атрибуты шрифта можно устанавливать ссылаясь на уже описанное в текущем браузере поле:

browse br1;
fields
  n1 : {font = { bold=yes } };
  n2 : {font as n1};
end;

Примечание: При вызове функций типа SetFontBold(...) для поля-донора (поле n1 в примере) атрибуты шрифтов полей "развяжутся", то есть для поля-акцептора (поле n2 в примере) изменений произведено не будет.

Атрибуты шрифта можно устанавливать для всех полей браузера:

browse br2;
  fields { font = { bold = true } };
	n1;
	n2 : {font = { italic = true }};
end;

Примечание: Атрибуты шрифтов "складываются", то есть шрифт поля n2 будет одновременно жирным и наклонным.

spinButton - позволяет вводить числовые поля кнопками прокрутки.

У полей типа byte, word, integer, longInt, single и double можно задать в качестве атрибута конструкцию spinButton [inc, min, max]. В этом случае у поля справа появятся две кнопки со стрелками вверх и вниз. Помимо обычного ввода с клавиатуры можно использовать указанные кнопки или сочетания клавиш Ctrl+Up и Ctrl+Down. Стрелка вверх и Ctrl+Up увеличивают, а стрелка вниз и Ctrl+Down уменьшают поле.

Inc, min, max имеют тип double, где inc - величина, на которую изменится значение поля при нажатии кнопки (вверх - увеличится, вниз - уменьшится), min - минимальное возможное значение, max - максимальное. При попытке прокрутки поля до значения меньше min оно станет равно max и наоборот:

<SPIN-описание> = [ <шаг>, <минимальное-значение>,
	<максимальное-значение>, ]

<шаг> - величина на которую изменится значение поля при нажатии кнопки (вверх - увеличится, вниз - уменьшится).

<минимальное-значение> - минимальное возможное значение.

<максимальное-значение> - максимальное возможное значение.

Желательно использовать значения, попадающие в диапазон типа поля. При попытке прокрутки поля до значения меньше <минимального-значения> оно станет равно <максимальному-значению> и наоборот.

Пример:

info : noProtect, spinButton [2, -100, 100];

noSetCurrent - при начале редактирования даты /времени не устанавливать текущие значения.

<шаблон-ввода> - задает ввод значений по шаблону:

<шаблон-ввода> = { inputMask = <выражение> }

<выражение> представляет собой вычисляемое выражение со строковым значением, задающее шаблон ввода для данного поля.

Подробнее использование шаблонов рассмотрено в "Ввод значений по шаблону. ".

Так как одновременно могут присутствовать шаблоны для даты, времени и даты-времени, то порядок использования того или иного формата ввода определяется следующим образом:

Версия

Атрибут image доступен начиная с Атлантис 5.3.10.