<view ... >

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

Синтаксис

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

Атрибуты View

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

Название Тип Описание
acl-id @acl-id

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

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

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

Название Тип Описание
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 Пересчитывает итоговые суммы.

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

Название Тип Описание
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 Включает/отключает пустую запись для ручной корректировки таблицы.
:!: Внимание! При неявном добавлении строки пропадает текущая запись.

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

Название Тип Описание
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 Возвращает имя текущей колонки.

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

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

Атрибуты Column

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

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

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

Название Тип Описание
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 Выравнивание текста в колонке по вертикали.

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

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

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

Название Тип Описание
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>
 
tags/view.txt · Последние изменения: 29/10/2020 16:32 (внешнее изменение)
 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS