Табличное представление данных в виде самостоятельной таблицы, в виде выпадающего справочника и в виде поля ввода «детали» в случае окна ввода типа «master-detail».
<view view-attributes>
[<toolbar>
...
<toolbar/>]
[<columns>
...
<columns/>]
[<edit>
...
<edit/>]
[<statusbar>
...
<statusbar/>]
<view/>
| Название | Тип | Описание |
|---|---|---|
| source-type | db | unknown | Тип источника данных |
| data-loader | code | Пользовательский загрузчик из неизвестного источника |
| acl-id | @acl-id |
| Название | Тип | Описание |
|---|---|---|
| current-col | n | column_name | При считывании возвращает номер текущей колонки. При записи устанавливает курсор на запись с заданным номером n или с заданным именем column_name. |
| current-col-name | column_name | При считывании возвращает имя текущей колонки. При записи устанавливает курсор на запись с заданным именем column_name. |
| 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 | Вид строки подсветки. |
| 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 - вид выпадающего справочника (отключены тулбар, заголовки колонок, статусбар и т.д.). |
| cols | number | Регулирует кол-во колонок. |
| rows | number | Регулирует кол-во строк. (Рекомендуется использовать при описании view, в то время как add-row - во время работы) |
| toolbar-visible | boolean | Управление видимостью тулбара вью. |
| statusbar-visible | boolean | |
| resizable | boolean | Флаг разрешения пользователю изменять ширины колонок. |
| manage-toolbar | boolean | Разрешение/запрещение view самостоятельно управлять доступностью кнопок тулбара. Рекомендуется использовать (отключать) в ситуациях, когда необходимо «вручную» управлять кнопками. |
| Название | Тип | Описание |
|---|---|---|
| delete-method | code | Метод для удаления записи |
| 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 | Команда передачи фокуса ввода в поле ввода. |
| add-row | number | Добавить n пустых записей в конец массива данных. |
| 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 | Очищает содержимое выделенных ячеек. |
| Название | Тип | Описание |
|---|---|---|
| sortable | boolean | Флаг разрешения сортировки щелчком по названию колонки |
| editable | boolean | Флаг разрешения редактирования ячеек прямо в ячейках. Поля ввода автоматически берутся из <edit>. По умолчанию, editable=«false». Подразумевается, что при необходимости дать возможность редактирования напрямую в таблице атрибут view.editable по умолчанию равен false, а атрибутами column.editable регулируется разрешение на редактирование. |
| reorderable | boolean | @reorderable |
| cell-margin | number | @cell-margin |
| columns-visible | boolean | Флаг принудительной установки видимости всех колонок view. |
| search-visible | boolean | Видимость строки поиска |
| popup | boolean | Флаг управления поведением при нажатии ESC. Если popup=true, то по ESC справочник закрывается. |
| memo-popup | @memo-popup | |
| search-label-visible | boolean | Видимость метки возле строки поиска. Там отображается имя поля, по которому выполняется поиск. |
| nextmatch-button-visible | boolean | Видимость кнопки «Искать далее» |
| sql | string | Текст запроса. По умолчанию, sql=«select * from » + <table-name>. Т.е. достаточно задать table-name и сделать refresh. |
| table-name | string | Имя таблицы. Необходимо для выполнения операции «удалить запись». |
| id-field | string | Имя поля с идентификатором записи. Необходимо для выполнения операции «удалить запись». |
| 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». |
| title | string | Заголовок объекта. Атрибут имеет силу только при создании объекта. Изменение значения атрибута после создания объекта не будет иметь эффекта. Имеет дополнительные атрибуты: title-before, title-after, title-visible. |
| empty-record | boolean | Включает/отключает пустую запись для ручной корректировки таблицы. |
| connect | string | Задает объект типа connect. |
| query | string | Задает объект запроса для общения с СУБД. |
| Название | Тип | Описание |
|---|---|---|
| last-op | boolean | Возвращает флаг успешного выполнения команды. Пока работает в связке с view.find-row |
| is-footered | boolean | Возвращает флаг существования футера в данных. |
| footer-height | number | Возвращает высоту футера в строках. |
| mouse-row | number | Возвращает номер строки, над которой находится курсор мыши. |
| mouse-col | number | Возвращает номер колонки, над которой находится курсор мыши. |
| Название | Тип | Описание |
|---|---|---|
| onCheckCellEditable | code | Должен возвращать true/false для разрешения редактирования ячейки. Правила описания см. (Описание событий в ApplicationXML). |
| onBeforeCellEdit | code | Возникает перед входом в редактирование ячейки. Правила описания см. (Описание событий в ApplicationXML). |
| onBeforeCellSave | code | Возникает перед сохранением изменений в ячейку. Если вернуть true, то изменения будут сохранены. Если - false, то редактирование будет продолжено. Правила описания см. (Описание событий в ApplicationXML). |
| 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). |
| 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). |
| Название | Тип | Описание |
|---|---|---|
| id | id_name | Уникальный, в рамках приложения, идентификатор объекта. Доступ к объекту с помощью AppScript выполняется через этот идентификатор. Если id не задан, то интерпретатор автоматически заполнит его некоторым случайным в момент запуска приложения. В этом случае appxml-программист лишается возможности обращаться к объекту. |
| name | string | @name |
| pair-name | string | @pair-name |
| visible | boolean | Видимость объекта |
| width | number | Ширина объекта. |
| as | date | memo | checkbox | enum | logical | string | hidden | icon | money | link | enum (перечислимый) - используется в случаях, когда поле (колонка) содержит конечное число значений и эти значения необходимо расшифровывать. Например, поле «Пол» - мужской/женский. Вместо слов колонка обычно содержит коды: 0 или 1. Вместо них нужно показать пользователю: «М» или «Ж». Каждую подстановку описываем отдельным тэгом в следующем формате: <enum [value=«nnn»] text=[«user_string» | «$$value»] /> money - денежное форматирование. |
| mask | mask | @mask |
| header-* | Cемейство визуальных атрибутов для заголовка колонки. | |
| editable | boolean | Флаг редактируемости конкретной колонки. Поле ввода автоматически вытаскивается из <edit>. По умолчанию, editable=«false». |
| totalable | boolean | Подсчитывать итог по данной колонке или нет. |
| total-type | sum | count | count_empty | count_non_empty | function | Тип агрегативной функции. sum - подсчитывается сумма значений в столбце. Поддерживаются столбцы с числовой информацией и с информацией типа «Сумма с валютой» count - подсчитывается общее кол-во строк. count_empty - подсчитывается кол-во строк, содержащих пустое значение в данном столбце count_non_empty - подсчитывается кол-во строк, содержащих непустое значение в данном столбце. function - конкретное имя функции (AppXML или Java), которая будет вызываться для каждого значения в столбце. В функцию будет передано номер строки и значение ячейки. Функция должна вернуть числовое значение (для каждой полученного значения ячейки), которое будет накапливаться и в конце обработки всех строк будет выведено в статусбар. Автоматически подсчитываются (не «count*») реквизиты с name == «sum» или начинающимся на «sum_» или «calc_», или оканчивающимся на «_sum» или «_calc». Если потребуется отключить подсчет по данному реквизиту, укажите column.totalable=«false». По умолчанию подсчитывается кол-во записей и выводится с текстом «Общее кол-во:». |
| total-text | string | Пользовательское название итога. Если не задано, используется column.text. |
| value-visible | boolean | Флаг видимости значения в ячейке. |
| icon-* | string | Семейство атрибутов для показа пиктограммы в ячейке. |
| Название | Тип | Описание |
|---|---|---|
| text | string | Пользовательский текст. Текст может содержать символ переноса строки '\n', а также может быть представленным в HTML-формате. Если текст содержит спецсимволы ('<', '&' и другие, с точки зрения XML), то следует вместо атрибута text использовать одноименный тэг <text>, вложенный в текущий. Текст следует записать следующим образом (на примере описания тэга <string>):
<string id="name">
<text>
<![CDATA[
<html><font color="blue">User name</html>
]]>
</text>
</string>
|
| Название | Тип | Описание |
|---|---|---|
| footer-fn | sum | average | sum - подсчитывает сумму по колонке и показывает в футере таблицы (последняя строка). average - подсчитывает среднее арифметическое по колонке и показывает в футере таблицы (последняя строка). |
| Название | Тип | Описание |
|---|---|---|
| onAction | code | Описание действий для события, типа, двойной щелчок мыши по объекту или нажатие Enter. Правила описания см. (Описание событий в ApplicationXML). |
| onClick | code | Описание действий для события, возникающего при щелчке мышью на объекте. Правила описания см. (Описание событий в ApplicationXML). |
| onMouseOver | code | Описание действий для события, возникающего при наведении курсора мыши на объект. Правила описания см. (Описание событий в ApplicationXML). |
| onMouseOut | code | Описание действий для события, возникающего при выходе курсора мыши из зоны объекта. Правила описания см. (Описание событий в ApplicationXML). |
Колонки описываются с помощью тэга <column> Тэг <nodata> показывает текст при отсутствии данных. Поддерживает атрибуты <label>.
Примечание! Тэг <view> уже имеет предопределенный <toolbar>; с некоторым набором кнопок. Для изменения описания кнопок следует описать <toolbaritem> с id изменяемой кнопки.
Зарезервированные id кнопок: addBtn, editBtn, delBtn, refreshBtn.
Зарезервированные id сепараторов кнопок:separatorForRefreshBtn, separatorForUserBtn.
Например, <toolbaritem id=«editBtn» text=«Теперь будет другой текст» /> Все прочие <toolbaritem>-ы с другими id будут добавлены к существующему тулбару.
<view id="currencyView" title="Справочник валют" margin="0"
sql="select id, short_name, name
from r_currency
#refresh#
order by name"
table-name="r_currency" id-field="id" name-field="short_name">
<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>