<view ... >

Табличное представление данных в виде самостоятельной таблицы, в виде выпадающего справочника и в виде поля ввода «детали» в случае окна ввода типа «master-detail».


Синтаксис

<view view-attributes>
   [<toolbar>
      ...
    <toolbar/>]
   [<columns>
      ...
    <columns/>]
   [<edit>
      ...
    <edit/>]
   [<statusbar>
      ...
    <statusbar/>] 
    
<view/>

Атрибуты View

Основные атрибуты (R/W):

Название Тип Описание
source-type db | unknown Тип источника данных
data-loader code Пользовательский загрузчик из неизвестного источника
acl-id @acl-id

Позиционирование (R/W):

Название Тип Описание
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) будет устанавливаться на первую строку.

Визуальные атрибуты (R/W):

Название Тип Описание
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 самостоятельно управлять доступностью кнопок тулбара. Рекомендуется использовать (отключать) в ситуациях, когда необходимо «вручную» управлять кнопками.

Командные атрибуты (W/O):

Название Тип Описание
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 Очищает содержимое выделенных ячеек.

Прочие атрибуты (R/W):

Название Тип Описание
sortable boolean Флаг разрешения сортировки щелчком по названию колонки
editable boolean Флаг разрешения редактирования ячеек прямо в ячейках. Поля ввода автоматически берутся из <edit>. По умолчанию, editable=«false». Подразумевается, что при необходимости дать возможность редактирования напрямую в таблице атрибут view.editable по умолчанию равен false, а атрибутами column.editable регулируется разрешение на редактирование.
:!: Внимание! Если отсутствует описание окна ввода <edit> редактирование ячеек не будет работать.
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.
:!: Внимание! Если использовать параметры (%param_name) в запросе (см. Передача параметров в объекты) то следует обязательно здесь же в описании <view> задавать начальные значения параметров, при которых запрос будет считаться корректным с точки зрения драйвера СУБД. Причина этого в том, что при создании <view> автоматически выполняется команда refresh (в противоположность <query>, который ждет явную команду execute).
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 Задает объект запроса для общения с СУБД.

Атрибуты только для чтения (R/O):

Название Тип Описание
last-op boolean Возвращает флаг успешного выполнения команды. Пока работает в связке с view.find-row
is-footered boolean Возвращает флаг существования футера в данных.
footer-height number Возвращает высоту футера в строках.
:!: Примечание! Пока возвращает константу 1.
mouse-row number Возвращает номер строки, над которой находится курсор мыши.
mouse-col number Возвращает номер колонки, над которой находится курсор мыши.

Событийные атрибуты (R/W):

Название Тип Описание
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).

Атрибуты Column

Основные атрибуты (R/W):

Название Тип Описание
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».
:!: Примечание: для подсчета кол-ва объектов («count»), в качестве аналитического реквизита можно выбрать любой column. Аналитических реквизитов с «count» может быть не более одного.
По умолчанию подсчитывается кол-во записей и выводится с текстом «Общее кол-во:».
total-text string Пользовательское название итога. Если не задано, используется column.text.
value-visible boolean Флаг видимости значения в ячейке.
icon-* string Семейство атрибутов для показа пиктограммы в ячейке.

Атрибуты текстовой метки (R/W):

Название Тип Описание
text string Пользовательский текст.
Текст может содержать символ переноса строки '\n', а также может быть представленным в HTML-формате.
Если текст содержит спецсимволы ('<', '&' и другие, с точки зрения XML), то следует вместо атрибута text использовать одноименный тэг <text>, вложенный в текущий. Текст следует записать следующим образом (на примере описания тэга <string>):
<string id="name">
    <text>
	<![CDATA[
	    <html><font color="blue">User name</html>
	]]>
    </text>
</string>

Командные атрибуты (W/O):

Название Тип Описание
footer-fn sum | average sum - подсчитывает сумму по колонке и показывает в футере таблицы (последняя строка).
average - подсчитывает среднее арифметическое по колонке и показывает в футере таблицы (последняя строка).

Событийные атрибуты (R/W):

Название Тип Описание
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>
 
tags/view.txt · Последние изменения: 2010/08/30 04:10 От admin
 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS