Поле ввода типа выпадающий справочник.
<reference reference-attributes> [<view> ... <view/>] <reference/>
Название | Тип | Описание |
---|---|---|
id | id_name | Уникальный, в рамках приложения, идентификатор объекта. Доступ к объекту с помощью AppScript выполняется через этот идентификатор. Если id не задан, то интерпретатор автоматически заполнит его некоторым случайным в момент запуска приложения. В этом случае appxml-программист лишается возможности обращаться к объекту. |
db-field | string | Имя поля в SQL-запросе. Окно ввода, в котором описан SQL-запрос и в составе которого описывается поле ввода свяжет поле из запроса и поле ввода. Если поле ввода размещается не в окне ввода, а в другом окне, то связь должен обеспечивать appxml-программист самостоятельно, работая напрямую с <query> и атрибутом db-field. |
Название | Тип | Описание |
---|---|---|
columns | number | Ширина поля, вычисляется на основе ширины m. |
reference-height | number | Высота выпадающего справочника. |
reference-width | number | Ширина выпадающего справочника. По умолчанию равна ширине поля combobox. |
reference-mode | DDRef | DDSimpleRef | Вид представления выпадающего справочника. |
magic-text | string | Текст типа »(нет)» или »(все)», если не выбрана запись. |
Название | Тип | Описание |
---|---|---|
init-value | value | Установка начального значения поля ввода. При записи в init-value флаг изменения changed сбрасывается в false. В дальнейшем, обращясь к атрибуту changed, можно определять изменял ли пользователь значение в поле ввода. ![]() |
value | value | Установка значения поля ввода. Если в процессе работы программы требуется изменить значение поля ввода программным способом, то делать это следует через данный атрибут. ![]() ![]() |
init-value-text | string | Устанавливает начальное текстовое значение. |
value-text | string | Возвращает текстовую строку (исходя из выбранного ID). |
required | boolean | Атрибут контроля за обязательностью ввода значения в поле ввода. Если установлен, то при валидации значения (чтение значение атрибута valid) поле самостоятельно проверит заполненость и, в случае пустоты, выдаст соответствующее сообщение. ![]() |
validate-fn | code | Атрибут для указания дополнительного программного кода, используемого для валидации значения поля ввода. При чтении значения атрибута valid указанный код будет вызван после внутренних проверок значения на валидность (например, если указан атрибут required). Правила написания кода валидации совпадают с правилами написания кода для событийных атрибутов. Код должен возвращать булевое значение true/false. |
value-fn | string | Описывается код вычисления значения. Вычисленное значение автоматически записывается в атрибут value. Вычисление инициируется командным атрибутом value-refresh данного объекта. Используется при возникновении зависимости значения данного поля ввода от значения другого поля ввода. При этом другое поле ввода после изменения своего значения (событие onChanged) должно вызвать атрибут value-refresh данного поля ввода. Значение value данного поля ввода пересчитается и обновится. Код вычисления значения должен возвращать значение через return. |
field-* | visual-attrbutes | Семейство визуальных атрибутов для управления внешним видом непосредственно поля ввода. |
field-margin-* | visual-attrbutes | Семейство визуальных атрибутов для управления отступом значения от текста. ![]() |
Название | Тип | Описание |
---|---|---|
text | string | Пользовательский текст. Текст может содержать символ переноса строки '\n', а также может быть представленным в HTML-формате. Если текст содержит спецсимволы ('<', '&' и другие, с точки зрения XML), то следует вместо атрибута text использовать одноименный тэг <text>, вложенный в текущий. Текст следует записать следующим образом (на примере описания тэга <string>): <string id="name"> <text> <![CDATA[ <html><font color="blue">User name</html> ]]> </text> </string> |
text-position | position | Положение пользовательского текста. |
text-* | visual-attrbutes | Семейство визуальных атрибутов для управления внешним видом текстовой метки (пользовательским текстом). |
Название | Тип | Описание |
---|---|---|
focus | boolean | Команда передачи фокуса ввода в поле ввода. ![]() |
value-refresh | boolean | Командный атрибут пересчета значения value на основе кода, описанного в атрибуте value-fn. При обращении к данному атрибуту (value-refresh=«true») значение будет пересчитано и записано в атрибут value. |
current-row | ext-number | Чтение/установка текущей записи по ее номеру либо на nn позиций вперед/назад |
current-row-by-id | string | Установка текущей записи по ее идентификатору (value) |
current-row-by-name | string | Установка текущей записи по ее пользовательскому названию (text) |
current-next | boolean | Установка текущей записью следующую, удовлетворяющую предыдущему значению current-row-by-name. |
close | boolean | Закрывает окно справочника. |
Название | Тип | Описание |
---|---|---|
changed | boolean | Возвращает флаг изменения значения в поле ввода. Значение может быть изменено как «вручную» (пользователем), так и программным способом (через атрибут value). |
empty | boolean | Возвращает признак того, что поле пустое (т.е. «0», »» (пустая строка) или null) |
null | boolean | Возвращает признак того, что поле содержит значение null (несмотря на то, что визуально там нормальное пустое значение) |
valid | boolean | Возвращает флаг валидности (корректности) значения. Значение проверяется полем самстоятельно, на основании ранее установленных атрибутов (например, required) и полученного кода в vaildate-fn. |
Название | Тип | Описание |
---|---|---|
refresh-onshow | boolean | Флаг постоянного обновления содержимого справочника при открытии списка. Применяется в случаях использования справочника, объявленного только для использования в качестве выпадающего, но ни как не в качестве самостоятельного. |
reference | tag or link2object | Вложенный тэг, описывающий справочник. Используется в тех случаях, когда нужно быстро «состряпать» поле без использования уже имеющихся справочников (view). Т.е. этот атрибут используется вместо reference-id. Рекомендуется не злоупотреблять этой возможностью, т.к. в этом случае необходимо самостоятельно заботиться об обновлении содержимого reference с помощью использования атрибута refresh-onshow=«true». Формат описания reference соответствует формату описания view. |
reference-id | string | Ссылка на справочник. Справочник должен быть описан в <common> самостоятельным объектом (т.е. не в составе сложного объекта) |
pair-name | string | @pair-name |
Название | Тип | Описание |
---|---|---|
onBeforeInit | code | Описание действий для события, возникающего перед установкой начального значения (атрибут init-value). Правила описания см. (Описание событий в ApplicationXML). |
onAfterInit | code | Описание действий для события, возникающего после установки начального значения (атрибут init-value). Правила описания см. (Описание событий в ApplicationXML). |
onChanged | code | Вызывается после каждого изменения пользователем поля ввода. При программном изменении значения (value) событие не генерируется. Правила описания см. (Описание событий в ApplicationXML). |
onEnter | code | Описание действий для события, возникающего при получении объектом фокуса. Правила описания см. (Описание событий в ApplicationXML). |
onExit | code | Описание действий для события, возникающего при потере объектом фокуса. Правила описания см. (Описание событий в ApplicationXML). |
onSelected | code | Описание действий для события, возникающего при выборе элемента из множества доступных (например, в выпадающем списке). Правила описания см. (Описание событий в ApplicationXML). Часто onSelected является синонимом для onAction. |
Поле ввода типа выпадающий справочник.
Пример использования выпадающего справочника. View с id=«companyView» должно быть обязательно описано в секции <common>.
<reference id="client_name" reference-id="companyView" refresh-onshow="true" text="Заказчик" height="18"> <onselected> msg('Это событие onselected объекта client_name.\n Значение = ' + this.value + ', текст = ' + this.value-text); </onselected> </reference> <view id="companyView" margin="0" grid-mode="on" title="Компании" grid-color="lightGray" sql="select id, name from company #refresh# order by name" table-name="company" id-field="id"> <columns> <column name="name" text="Наименование" as="string" width="100"/> </columns> <edit order="vline" unique="name" > <edititem id="name" db-field="name" text="Наименование" required="true" field-width="300" text-position="left" /> </edit> </view>