Табличное представление данных в виде самостоятельной таблицы, в виде выпадающего справочника и в виде поля ввода «детали» в случае окна ввода типа «master-detail».
—-
<view view-attributes> [<toolbar> ... <toolbar/>] [<columns> ... <columns/>] [<edit> ... <edit/>] [<statusbar> ... <statusbar/>] <view/>
Название | Тип | Описание |
---|---|---|
acl-id | @acl-id |
Название | Тип | Описание |
---|---|---|
current-row | n | +n | -n | top | bottom | next | prev | center | +center | -center | При считывании возвращает номер текущей строки. При записи устанавливает курсор на запись с порядковым номером n. Кроме этого можно использовать относительное позиционирование («top», «bottom», …), а также позиционирование методом двоичного поиска с помощью »+center»/»-center». |
current-row-by-id | value | При записи устанавливает курсор на запись, в которой поле view.id-field имеет значение value. |
current-row-by-name | value | При записи ищет и устанавливает курсор на первую запись, в которой поле view.name-field имеет значение value. |
current-row-by-field | fieldName:value | При записи ищет и устанавливает курсор на первую запись, в которой значение произвольного поля fieldName начинается (в отличие от прочих current-row-by-*) с value. |
current-row-next | boolean | При записи true устанавливается на следующую строку, удовлетворяющую предыдущему критерию поиска (предыдущим значениям current-row-by-name, current-row-by-field). поиска. |
find-row | fieldName:value | При записи ищет и устанавливает курсор на первую запись, в которой произвольное поле fieldName имеет значение value. Отличие от current-row-by-field - в проверке на точное совпадении (регистр игнорируется). |
cursor-to-first-record | boolean | При true курсор всегда после обновления (view.refresh=true) будет устанавливаться на первую строку. |
Название | Тип | Описание |
---|---|---|
row-height | number | Высота строк |
highlightbar | row | column | no | Вид строки подсветки. |
search-position | top | bottom | Положение строки поиска |
checklist | boolean | Первая колонка в виде checkbox. |
header-visible | boolean | Флаг показа заголовков колонок view. |
resize-mode | off | all | Поведение прочих столбцов при изменении размеров одного. - "off" - прочие столбцы не реагируют. Таблица занимает места столько, сколько необходимо. Есть scroll-bar. Применяется при обычном режиме. - "all" - все столбцы справа изменяются пропорционально. Таблица занимает все видимое место. Scroll-bar отсутствует. Применяется при режиме выпадающего справочника. |
selection-mode | single | sInterval | mInterval | Режим отметки записей. "single" - в один момент времени можно отметить только одну запись. "sInterval" - можно отметить одну сплошную группу записей. "mInterval" - можно отметить несколько сплошных групп записей. По умолчанию selection-mode=«single». |
grid-color | color-name | Цвет сетки. |
grid-mode | off | on | vertical | horizontal | Флаг показа сетки. |
color-selection | color-name | Установка цвета переднего плана для выбранной строки |
background-color-selection | color-name | Установка цвета заднего плана для выбранной строки |
scrollbar-* | Семейство атрибутов, управляющих представением скролабара. Содержит атрибуты: scrollbar-base-color - цвет (единый) для всех элементов скролбара, scrollbar-arrow-color - цвет для кнопок, scrollbar-thumb-color - цвет для «бегунка», scrollbar-thumb-highlight-color - цвет для левой и верхней границ «бегунка», scrollbar-thumb-lightshadow-color - цвет для правой и нижней границ «бегунка» (предполагается, что она немного светлее, чем scrollbar-thumb-darkshadow-color), scrollbar-thumb-darkshadow-color - цвет для тени справа и снизу (предполагается, что она немного темнее, чем scrollbar-thumb-lightshadow-color), scrollbar-track-color - цвет для полосы, scrollbar-track-highlight-color - цвет для полосы прокрутки в момент щелчка по ней (цвет только данной части полосы). |
|
mode | Ref | DDRef | Выбор визуального режима отображения справочника: - Ref - обычный вид, - DDRef - вид выпадающего справочника (отключены панель инструментов, заголовки колонок, статусбар и т.д.). |
toolbar-visible | boolean | Управление видимостью панели инструментов view. |
statusbar-visible | boolean | Примечание: статусбар может быть не виден, но итоги все равно могут подсчитываться (т.е. в общем случае ПК может «притормаживать»). |
resizable | boolean | Флаг разрешения пользователю изменять ширины колонок. |
manage-toolbar | boolean | Разрешение/запрещение view самостоятельно управлять доступностью кнопок панели инструментов. Рекомендуется использовать (отключать) в ситуациях, когда необходимо «вручную» управлять кнопками. |
Название | Тип | Описание |
---|---|---|
sort | string | Дает команду отсортировать по колонке «column.name» |
filter-method | colNum:colValue | Фильтруем по колонке N colNum, в которой должно быть colValue. |
remove-record | number | Удалить строку с порядковым номером n. |
refresh | 0 | 1 | 2 | 3 | Обновить данные. 0 - просто обновить представление таблицы на экране 1 - обновить текущую выбранную строку таблицы 2 - обновить данные с помощью повторного выполнения SQL запроса 3 - обновить только добавленные или измененные записи таблицы. |
focus | boolean | Команда передачи фокуса ввода в поле ввода. |
start-edit | boolean | Команда вводит текущую ячейку в состояние редактирования. |
stop-edit | boolean | Команда остановить редактирование в ячейке с сохранением данных. |
rebuild | boolean | @rebuild |
freeze | number | «Заморозить» первые n колонок из числа видимых. Внимание! «Замороженные» колонки нельзя динамически скрывать и при их использовании таблицу нельзя динамически сортировать щелчком по заголовку колонки. |
call-add | boolean | Вызов внутреннего метода добавления записи. Обычно это действие выполняется через панель инструментов view. |
call-edit | boolean | Вызов внутреннего метода редактирования текущей записи. Обычно это действие выполняется через панель инструментов view. |
call-delete | boolean | Вызов внутреннего метода удаления текущей записи. Обычно это действие выполняется через панель инструментов view. |
call-refresh | boolean | Вызов внутреннего метода обновления содержимого view. Обычно это действие выполняется через панель инструментов view. |
remove-row | current | all | n | current и true - синонимы, n - номер удаляемой строки |
clear-selection | boolean | Очищает содержимое выделенных ячеек. |
update-total | boolean | Пересчитывает итоговые суммы. |
Название | Тип | Описание |
---|---|---|
sortable | boolean | Флаг разрешения сортировки щелчком по названию колонки |
editable | boolean | Флаг разрешения редактирования ячеек прямо в ячейках. Поля ввода автоматически берутся из <edit>. По умолчанию, editable=«false». Подразумевается, что при необходимости дать возможность редактирования напрямую в таблице атрибут view.editable по умолчанию равен false, а атрибутами column.editable регулируется разрешение на редактирование. Внимание! Если отсутствует описание окна ввода <edit> редактирование ячеек не будет работать. |
reorderable | boolean | @reorderable |
cell-margin | number | @cell-margin |
search-visible | boolean | Видимость строки поиска |
popup | boolean | Флаг управления поведением при нажатии ESC. Если popup=true, то по ESC справочник закрывается. |
memo-popup | @memo-popup | |
search-label-visible | boolean | Видимость метки возле строки поиска. Там отображается имя поля, по которому выполняется поиск. |
nextmatch-button-visible | boolean | Видимость кнопки «Искать далее» |
name-field | string | Имя поля с названием. Используется для выпадающего справочника, когда требуется записать выбранное название в поле ввода, а полей в выпадающем справочнике много. |
parent-id-field | string | Имя поля, содержащего ссылку на родительскую запись. При этом запрос, передаваемый в view.sql для _TableEdit должен содержать параметр, типа, select … where field_x=@value. |
slave | string | Cписок подчиненных связанных view. При view.mode!=«Ref» список игнорируется. Пример: slave=«companyView, mView, view2» |
slave-parameters | string | Oписание имен параметров и имен полей, чьи значения будут передаваться в подчиненные (slave) view. Подразумевается, что соответствующие имена параметров будут использоваться в запросе в подчиненных view в виде »@par1». Пример: slave-parameters=«par1:field1, par2:field2» |
refresh-oncreated | boolean | По умолчанию «true». Отключать атоматическое обновление при создании объекта. Полезно при параметризованном sql. |
totalable | boolean | Подсчитываются ли итоги. По умолчанию view.totalable=«true». |
auto-total | boolean | Управляет автогенерацией total-* атрибутов (не путать с view.totalable, который отключает показ всех явно и неявно заданных total-* атрибутов). |
title | string | Заголовок объекта. Атрибут имеет силу только при создании объекта. Изменение значения атрибута после создания объекта не будет иметь эффекта. Имеет дополнительные атрибуты: title-before, title-after, title-visible. |
empty-record | boolean | Включает/отключает пустую запись для ручной корректировки таблицы. Внимание! При неявном добавлении строки пропадает текущая запись. |
Название | Тип | Описание |
---|---|---|
last-op | boolean | Возвращает флаг успешного выполнения команды. Пока работает в связке с view.find-row |
is-footered | boolean | Возвращает флаг существования футера в данных. |
footer-height | number | Возвращает высоту футера в строках. Примечание! Пока возвращает константу 1. |
mouse-row | number | Возвращает номер строки, над которой находится курсор мыши. |
mouse-col | number | Возвращает номер колонки, над которой находится курсор мыши. |
row-count | number | Количество строк в таблице. |
current-col | number | Возвращает номер текущей колонки. |
current-col-name | string | Возвращает имя текущей колонки. |
Название | Тип | Описание |
---|---|---|
onBeforeCellEdit | code | Возникает перед входом в редактирование ячейки. Правила описания см. (Описание событий в ApplicationXML). |
onBeforeCellSave | code | Возникает перед сохранением изменений в ячейку. Если вернуть true, то изменения будут сохранены. Если - false, то редактирование будет продолжено. Правила описания см. (Описание событий в ApplicationXML). Указатель this указывает на поле ввода. |
onAfterCellSave | code | Возникает после сохранения изменений в ячейку. Правила описания см. (Описание событий в ApplicationXML). |
onColumnSelected | code | Возникает после смены колонки. Правила описания см. (Описание событий в ApplicationXML). |
onBeforeDelete | code | Выполняется после утвердительного ответа на вопрос, но перед непосредственным удалением. От возвращенного им значения зависит дальнейший процесс удаления. Правила описания см. (Описание событий в ApplicationXML). |
onAfterDelete | code | Выполняется после успешного удаления записи. Правила описания см. (Описание событий в ApplicationXML). |
onSelected | code | Описание действий для события, возникающего при выборе элемента из множества доступных (например, в выпадающем списке). Правила описания см. (Описание событий в ApplicationXML). Часто onSelected является синонимом для onAction. |
onAction | code | Описание действий для события, типа, двойной щелчок мыши по объекту или нажатие Enter. Значение по умолчанию view.onAction=«this.call-edit=true» (открывается окно для редактирования записи) Правила описания см. (Описание событий в ApplicationXML). |
onEmptyAction | code | Описание действий для события, возникающего при двойном щелчке на пустом пространстве view. Значение по умолчанию view.onEmptyAction=«this.call-add=true» (открывается окно для добавления) Правила описания см. (Описание событий в ApplicationXML). |
onEmptyClick | code | Описание действий для события, возникающего при одинарном щелчке на пустом пространстве view. Правила описания см. (Описание событий в ApplicationXML). |
onKeyPress | code | @onkeypress Правила описания см. (Описание событий в ApplicationXML). |
onCreated | code | Описание действий для события, возникающего единожды, после создания объекта. Правила описания см. (Описание событий в ApplicationXML). |
onAddedd | code | @onaddedd Правила описания см. (Описание событий в ApplicationXML). |
onBeforeRefresh | code | Описание действий для события, возникающего непосредственно перед обновлением данных во (т.е. перед выполнением команды refresh=«true»). Правила описания см. (Описание событий в ApplicationXML). |
onAfterRefresh | code | Описание действий для события, возникающего сразу после обновления данных во (т.е. после выполнения команды refresh=«true»). Правила описания см. (Описание событий в ApplicationXML). |
onBeforeEdit | code | Описание действий для события, возникающего непосредственно перед началом редактирования в ячейке. Правила описания см. (Описание событий в ApplicationXML). |
onAfterEdit | code | Описание действий для события, возникающего сразу после успешного окончания редактирования в ячейке. Правила описания см. (Описание событий в ApplicationXML). |
onCancelEdit | code | Описание действий для события, возникающего сразу после отказа от сохранения изменений в ячейке. Правила описания см. (Описание событий в ApplicationXML). |
onClick | code | Описание действий для события, возникающего при щелчке мышью на объекте. Правила описания см. (Описание событий в ApplicationXML). |
onMouseOver | code | Описание действий для события, возникающего при наведении курсора мыши на объект. Правила описания см. (Описание событий в ApplicationXML). |
onMouseOut | code | Описание действий для события, возникающего при выходе курсора мыши из зоны объекта. Правила описания см. (Описание событий в ApplicationXML). |
onВeforeSort | code | Описание действий для события, возникающего перед сортировкой данных. Правила описания см. (Описание событий в ApplicationXML). |
onAfterSort | code | Описание действий для события, возникающего после сортировки данных. Правила описания см. (Описание событий в ApplicationXML). |
Название | Тип | Описание |
---|---|---|
id | id_name | Уникальный, в рамках приложения, идентификатор объекта. Доступ к объекту с помощью AppScript выполняется через этот идентификатор. Если id не задан, то интерпретатор автоматически заполнит его некоторым случайным в момент запуска приложения. В этом случае appxml-программист лишается возможности обращаться к объекту. |
name | string | @name |
visible | boolean | Видимость объекта |
width | number | Ширина объекта. |
as | date | datetime | year | memo | checkbox | enum | logical | string | hidden | icon | money | link | code | quote | percent | imagepath:icon_scale | iconpath:icon_scale | enum (перечислимый) - используется в случаях, когда поле (колонка) содержит конечное число значений и эти значения необходимо расшифровывать. Например, поле «Пол» - мужской/женский. Вместо слов колонка обычно содержит коды: 0 или 1. Вместо них нужно показать пользователю: «М» или «Ж». Каждую подстановку описываем отдельным тэгом в следующем формате: <enum [value=«nnn»] text=[«user_string» | «$$value»] /> money - денежное форматирование, может применяться к данным типа «currency» и к чисто числовым данным. code - показ числового значения с лидирующими нулями. quote - вывод числового значения с пятью знаками после запятой. Причем может применяться к данным типа «currency» и к чисто числовым данным. percent - вывод числового значения со знаком »%» в конце. imagepath - путь к пиктограмме. icon-scale - масштаб пиктограммы. |
mask | mask | Значение маски должно записываться в java-формате (типа #,##0.00 ). Она имеет приоритет над значением as. Java-формат записи маски: 0 - цифра, не значащие нули показываются # - цифра, не значащие нули не показываются . - десятичная точка, в шаблоне она всегда пишется как точка, независимо от того какой символ (точка или запятая) используется для форматирования - - знак минус , - разделитель групп разрядов, те же правила что и с точкой E - разделитель мантисы и экспоненты в научной нотации (подробно и с примерами: http://base.vingrad.ru/view/2892-Formatirovanie-chisel-dat-i-teksta) Внимание! Маска регулирует представление (показ) значения, а не само значение. |
header-* | Cемейство визуальных атрибутов для заголовка колонки. Можно динамически менять свойства заголовка колонки. | |
editable | boolean | Флаг редактируемости конкретной колонки. Поле ввода автоматически вытаскивается из <edit>. По умолчанию, editable=«false». Поддержка «expr:» в column.editable |
totalable | boolean | Подсчитывать итог по данной колонке или нет. |
total-type | sum | count | count_empty | count_non_empty | function | count_true | Тип агрегативной функции. sum - подсчитывается сумма значений в столбце. Поддерживаются столбцы с числовой информацией и с информацией типа «Сумма с валютой» count - подсчитывается общее кол-во строк. count_empty - подсчитывается кол-во строк, содержащих пустое значение в данном столбце count_true - подсчитывается кол-во строк, содержащих значение true в данном столбце count_non_empty - подсчитывается кол-во строк, содержащих непустое значение в данном столбце. function - конкретное имя функции (AppXML или Java), которая будет вызываться для каждого значения в столбце. В функцию будет передано номер строки и значение ячейки. Функция должна вернуть числовое значение (для каждой полученного значения ячейки), которое будет накапливаться и в конце обработки всех строк будет выведено в статусбар. Автоматически подсчитываются (не «count*») реквизиты с name == «sum» или начинающимся на «sum_» или «calc_», или оканчивающимся на «_sum» или «_calc». Если потребуется отключить подсчет по данному реквизиту, укажите column.totalable=«false». Примечание: для подсчета кол-ва объектов («count»), в качестве аналитического реквизита можно выбрать любой column. Аналитических реквизитов с «count» может быть не более одного. По умолчанию подсчитывается кол-во записей и выводится с текстом «Общее кол-во:». |
total-text | string | Пользовательское название итога. Если не задано, используется column.text. |
value-visible | boolean | Флаг видимости значения в ячейке. |
icon-* | string | Семейство атрибутов для показа пиктограммы в ячейке. Все атрибуты поддерживают использование «expr:». |
selected-background-color | color | Цвет строки подсветки текущей колонки. |
background-color | color | Цвет фона текущей колонки. |
selected-color | color | Цвет текст в текущей колонке в выделенной строке. |
color | color | Цвет текста текущей колонки. |
button-text | string | Текст кнопки в ячейке. По умолчанию - «…» |
button-visible | boolean | Флаг управления видимостью кнопки в ячейке. |
button-text-position | string | Позиция текста в кнопке в ячейке. |
button-icon | string | Иконка кнопки в ячейке. |
value | string | Если атрибут указан, то в ячейке будет показано значение, указанное в нем. |
value-before | string | Текст перед значением в колонке. Поддерживается выражение «expr:(…)« |
value-after | string | Текст после значения в колонке. Поддерживается выражение «expr:(…)« |
selected | boolean | Установка/снятие курсора на/с заданную колонку в текущей строке. |
visible | boolean | Управление видимостью колонки. |
length | number | Длина поля для column.as=code |
Название | Тип | Описание |
---|---|---|
text | string | Пользовательский текст. Текст может содержать символ переноса строки '\n', а также может быть представленным в HTML-формате. Если текст содержит спецсимволы ('<', '&' и другие, с точки зрения XML), то следует вместо атрибута text использовать одноименный тэг <text>, вложенный в текущий. Текст следует записать следующим образом (на примере описания тэга <string>): <string id="name"> <text> <![CDATA[ <html><font color="blue">User name</html> ]]> </text> </string> |
align | string | Выравнивание текста в колонке по горизонтали. |
valign | string | Выравнивание текста в колонке по вертикали. |
Название | Тип | Описание |
---|---|---|
footer-fn | sum | average | sum - подсчитывает сумму по колонке и показывает в футере таблицы (последняя строка). average - подсчитывает среднее арифметическое по колонке и показывает в футере таблицы (последняя строка). |
sortable | true| false | управляет возможностью сортировать по данной колонке. |
Название | Тип | Описание |
---|---|---|
onAction | code | Описание действий для события, типа, двойной щелчок мыши по объекту или нажатие Enter. Правила описания см. (Описание событий в ApplicationXML). |
onClick | code | Описание действий для события, возникающего при щелчке мышью на объекте. Правила описания см. (Описание событий в ApplicationXML). |
onMouseOver | code | Описание действий для события, возникающего при наведении курсора мыши на объект. Правила описания см. (Описание событий в ApplicationXML). |
onMouseOut | code | Описание действий для события, возникающего при выходе курсора мыши из зоны объекта. Правила описания см. (Описание событий в ApplicationXML). |
button-onAction | code | Описание действий для события, возникающего при клике по кнопке внутри ячейки. Правила описания см. (Описание событий в ApplicationXML). |
Колонки описываются с помощью тэга <column> Тэг <nodata> показывает текст при отсутствии данных. Поддерживает атрибуты <label>.
Примечание! Тэг <view> уже имеет предопределенный <toolbar>; с некоторым набором кнопок. Для изменения описания кнопок следует описать <toolbaritem> с id изменяемой кнопки.
Зарезервированные id кнопок: addBtn, editBtn, delBtn, refreshBtn.
Зарезервированные id сепараторов кнопок:separatorForRefreshBtn, separatorForUserBtn.
Например, <toolbaritem id=«editBtn» text=«Теперь будет другой текст» /> Все прочие <toolbaritem>-ы с другими id будут добавлены к существующему toolbar.
Динамически записать значение в ячейку вью можно с помощью конструкции
view.field:field_name = field_value
Примечание! Касательно динамического изменения цвета у ячеек view с помощью view.getColumn(…) правило следующее:
- надо или везде использовать refresh=0 после смены цвета (цветов) или нигде.
Во view поддерживается указание редактора по умолчанию для ячейки заданного типа: <edititem db-field=«*» type=«target_type» … /> Например
<edit> <edititem type="number" db-field="*" onchanged="global.changed_wp=1"/> </edit>
<view id="currencyView" title="Справочник валют" margin="0" <datastore order-by="name" table-name="r_currency" id-field="id"> select id, short_name, name from r_currency </datastore> <columns> <column name="short_name" text="Рабочее наименование"/> </columns> <edit> <edititem id="name" text="Название валюты" db-field="name" required="true"/> <edititem id="short_name" text="Рабочее наименование" db-field="short_name" required="true"/> </edit> </view>