Визуальные компоненты: различия между версиями

Материал из Intellex
Перейти к навигации Перейти к поиску
Строка 953: Строка 953:
| colspan="1" |нет
| colspan="1" |нет
| colspan="1" |Тип маски ввода. Содержит строку, по которой определяется тип маски - шаблон библиотеки IMask или RegExp.
| colspan="1" |Тип маски ввода. Содержит строку, по которой определяется тип маски - шаблон библиотеки IMask или RegExp.
|}
{| class="wikitable"
!Свойство
! colspan="1" |Наличие значения
!Назначение
|-
|Идентификатор
| colspan="1" |Обязательно
|'''Описание:''' атрибут предназначен для указания выражения, которое будет содержать идентификатор режима
'''Допустимые значения''': статичная строка(Значение может задаваться явно, т.е. в числовом виде, либо через переменную документа. например XM_DOCUMENT.num, где XM_DOCUMENT - название документа, num - имя переменной )
''По умолчанию тип не выбран''
|-
| colspan="1" |Название режима
| colspan="1" |Не обязательно
| colspan="1" |Атрибут позволяет выбрать название из существующих режимов
|}
=== Свойства применимости ===
{| class="wikitable"
!Свойство
! colspan="1" |Наличие значения
!Назначение
|-
| colspan="1" |Скрывать если
| colspan="1" |Не обязательно
| colspan="1" |'''Описание:''' атрибут предназначен для визуального скрытия элемента на форме.
'''Допустимые значения''': формула, результат - логический тип. Если значение равно:
* Истина - элемент скрывается на форме
* Ложь - элемент отображается и недоступен для редактирования значения.
* NULL - элемент отображается и недоступен для редактирования значения. ''Примечание: если выражение не задано, то условие по умолчанию принимает значение Ложь.''
|-
| colspan="1" |Выполнять если
| colspan="1" |Не обязательно
| colspan="1" |'''Описание:''' атрибут предназначен для задания условия, значение которого влияет на доступность к данному компоненту.
'''Допустимые значения''': формула, результат - логический тип. Если значение равно:
* Истина - элемент отображается и недоступен для редактирования
* Ложь - элемент отображается и недоступен для редактирования
* NULL - элемент отображается и недоступен для редактирования
''Примечание: если выражение не задано, то условие по умолчанию принимает значение Истина.''
|}
|}

Версия 13:47, 15 июля 2022

Контейнер объектов (container)

Предназначен для задания единого способа отображения визуальных компонентов и позволяющий инкапсулировать в себе объекты других типов.

Контейнер объектов.png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
direction перечислимый нет vertical нет да Определяет способ расположения дочерний элементов
  • vertical - элементы располагаются по вертикали
  • horizontal - элементы располагаются по горизонтали
cssstylecontent строка нет нет да CSS Стиль блока с содержимым для контейнера
ratio число нет 1 нет нет Определяет пропорции ширины или высоты для контейнера
readonly строка нет 0|false да да Значение данного свойства обратно значению свойства enabled. Присвоение значения свойству readonly не имеет действия. Возможные значения "1"|"true" или "0"|"false" (независимы от регистра).

Примечание: если при обращении к этому атрибуту его значение в строковом виде равно "1" или "true", то оно принимается за true, в случае любых других значений включая пустую строку или NULL оно принимается за false.

Вкладки (tabsheet)

Вкладка — это визуальный элемент, который позволяет создавать множество вкладок, для размещения на них визуальных элементов.

Вкладка.png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
activeTabCaption строка только для чтения нет да Название активной вкладки. Если ни одна из вкладок не активна, то значение атрибута равно пустой строке.
activeTabPosition число только для чтения нет да Позиция активной вкладки. Нумерация вкладок начинается с единицы. Если ни одна из вкладок не активна, то значение атрибута равно нулю.
activeTab строка да да Название активной вкладки. Если название задано, при загрузке режима вкладка с этим названием становится активной
direction строка horizontal нет да Направление отображения вкладок (vertical - вкладки слева, контент - справа | horizontal - вкладки сверху, контент снизу)
cssstylecaption строка нет да Имя CSS стиля вкладки
cssstyleactive строка нет да Имя CSS стиля активной вкладки
enableCollapse булеан false нет да Возможность сворачивания (только для вкладок с направлением отображения "vertical")
collapsed число 0 нет да Положение по умолчанию (свернуты - 1, развернуты - 0)

Панель кнопок (toolbar)

Панель кнопок - визуальный элемент, который позволяет разместить в себе группу кнопок.

Панель кнопок.png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
readonly строка 0|false да да Значение данного свойства обратно значению свойства enabled. Присвоение значения свойству readonly не имеет действия. Возможные значения "1"|"true" или "0"|"false" (независимы от регистра).

Кнопка (button)

Позволяет добавить на панель кнопку, которую в последствие можно привязать к какомулибо действию, созданному в правилах заполнения (к примеру Апп-функция).

Кнопка.png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступен из скрипта Описание
onclick действие нет нет да Название действия (action/actiongroup), выполняемое при нажатии на кнопку
iconname строка нет да да Наименование иконки из репозитория для отображения на кнопке
hint строка нет да да Текст всплывающей подсказки при наведении на кнопку

Текст/подпись (label)

Текст-Подпись .png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступен из скрипта Описание
onclick действие нет нет нет Название действия (action/actiongroup), выполняемое при клике на тексте

Таблица (grid)

Компонент для отображения табличных данных.

Таблица.png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
groupby строка нет да нет Перечисление колонок курсора для их группировки через запятую (Только для Delphi)
groupbox булеан нет true нет нет При истинном значении отображается поле для ручной группировки данных пользователем (Только для Delphi)
selectedRow строка курсора только чтение нет да Позволяет получить данные из выделенной в гриде строке, дополнительно указав название колонки в курсоре. Например выражение:
${window.grid.selectedRow.rw_name}

возвращает из выделенной строки грида grid значение ячейки в колонке с именем rw_name

selectedRows строка курсора только чтение нет да Позволяет получить данные из выделенных в гриде строк, дополнительно указав название колонки в курсоре. Например выражение:
${window.grid.selectedRows.rw_name}

возвращает через запятую из выделенных строк грида значение ячеек в колонке с именем rw_name. В случае, когда выделена только одна строка в гриде, атрибут работает как selectedRow

selectedCell любой тип только чтение нет да Позволяет получить данные из выделенной ячейки грида. Например выражение:
${window.grid.selectedCell}

возвращает значение выделенной ячейки грида

selectedSourceField строка только чтение нет да Название колонки в курсоре данных, соответствующей выделенной колонки грида
${window.grid.selectedSourceField}
selectedGroup строка только чтение нет да Информация о группировке. Формат:
<group>

   

   <col_name>group_value</col_name>

</group>

Например, если данные в гриде сгруппированы по колонка A и B. Осуществляется попытка провалиться в итоги, где A="Значение A", B="Значение B", то результирующая строка будет

<group>

   <A>Значение A</A>

   <B>Значение B</B>

</group>

Не поддерживается в XM

selectioncolumn строка только чтение нет нет Имя колонки (поля), в котором пользователь сможет осуществлять выделение галочкой.

!!! поле с таким именем должно присутствовать в датасете, а колонка с этим полем - в списке колонок грида!!!

livecomplexheaders булеан нет false нет нет Признак того, что в случае сложных заголовков сохраняется возможность сортировать и фильтровать по столбцам грида.

Если этот атрибут равен "true", то значение атрибута numerate игнорируется и считается равным "false".

columnfiltereditemslist булеан нет false нет нет При фильтрации в фильтрах колонок грида присутствуют только значения видимые в результате применения фильтров по другим колонкам(иначе фильтры колонок содержат все значения).
groupHeaderLineCount число нет 1 нет нет Количество строк в заголовке группы.
cansort булеан нет true нет нет Дать возможность пользователю сортировать данные.
expandGroups булеан нет false нет нет Развернуть группировки.
checkedRows строка курсора только чтение нет да Позволяет получить данные из строк в гриде, отмеченными галочками, дополнительно указав колонку название колонки в курсоре. Значения будут перечислены через запятую.

Например выражение:

${window.grid.checkedRows.rw_id}

для отмеченных строк грида rw_id = 10 и rw_id=20 вернет "10,20"

Отмеченной строкой грида является та строка, у которой значение колонки из selectioncolumn равно истине

rowstyle строка нет нет да "Стиль строки" - Название колонки, содержащей информацию о раскраске строки таблицы. Формат раскраски описан в статье (Выделение цветом строк в окне фильтра) - TTTTTT$BBBBBB$SSSS
selectedRowStyle строка нет нет да "Стиль выделенной строки" - Название колонки, содержащей информацию о раскраске выделенной строки таблицы. Формат раскраски описан в статье (Выделение цветом строк в окне фильтра) - TTTTTT$BBBBBB$SSSS
minRows число нет нет нет Минимальное число строк на странице
maxRows число нет нет нет Максимальное число строк на странице
selectedColumnName строка только чтение нет да Название активной колонки (которое отображается в шапке грида)
selectedColumnNameWithBands строка только чтение нет да Для сложных шапок - последовательность названий колонок, в которые входит активная, начиная сверху, через запятую.

Пример: Верхний бенд, средний бенд, название колонки.

selectedColumnBand(xx) строка только чтение нет да Возвращает функцию для расчета сложных шапок - названий бендов. Для получения последовательности бендов заданного уровня, необходима запись типа ${eval(windowName.gridName.selectedColumnBand,xx)}, где windowName - имя формы, gridName - имя грида, xx - номер уровня (считается от колонки вверх).
exportCaption строка нет да нет Текст в шапке листа Excel при экспорте.

Обработчики событий

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
ondrilldown действие (action/actiongroup) нет да нет Название действия, выполняемое при двойном щелчке на строк. Если столбцу грида, в ячейке которого был выполнен двойной щелчток мышью также содержит атрибут ondrilldown, то выполняется действие, назначенное столбцу.
onrowselect действие (action/actiongroup) нет да нет Название действия, выполняемое при смене активной строки грида.

Действие также выполняется при инициализации грида, так как в этот момент его первая строка становится активной.

onrowclick действие (action/actiongroup) нет да нет Название действия, выполняемое при нажатии на строку грида.

Группа колонок грида (colgroup)

Объединяет несколько пордяд идущих колонок в одну визуальную группу

Группа колонок.png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
caption строка да да нет Название группы колонок

Колонка (column)

Описывает визуальное представление колонки грида и связывает колонку с курсором данных.

Колонка.png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
caption строка да да нет Название колонки
sourcefield строка да нет нет Название отображаемой колонки курсора
displayformat перечислимый нет нет Формат отображения данных:
  • currency - отображение денег
  • number - отображение произвольного числа
  • date - дата
  • datetime -дата со временем
  • check - булеан в виде checkbox
  • string - строка (в разработке)
  • icon - иконка по идентификатору
  • checkicon - кликабельная иконка - при клике на нее значение поля меняется на +1 и иконка меняется на следующую из списка icons (если список исчерпан, то с начала списка и значение поля равно 0)
summary строка нет нет Формула для расчета итогов и подытогов колонки. Формулы 1-го рода - агрегирующие функции:
  • sum() - просуммировать значения текущей колонки. Применяется для типов данных: число (деньги)
  • min() - минимальное значение текущей колонки. Применяется для типов данных: число (деньги), дата
  • max() - максимальное значение текущей колонки. Применяется для типов данных: число (деньги), дата
  • avg() - среднее значение значений текущей колонки. Применяется для типов данных: число (деньги)
  • count() - количество строк в текущей колонке. Применяется для всех типов данных
  • countdistinct() - количество строк с уникальными значениями в текущей колонке. Применяется для всех типов данных
  • countnotempty() - количество строк с не пустыми значениями в текущей колонке. Применяется для всех типов данных

Формулы 2-го рода - агрегирующие функции по произвольным колонкам курсора:

  • sum(название колонки курсора) - просуммировать значения заданной колонки (суммирует значения только из заданных в гриде колонок)
  • min(название колонки курсора) - минимальное значение заданной колонки
  • max(название колонки курсора) - максимальное значение заданной колонки
  • avg(название колонки курсора) - среднее значение значений заданной колонки
  • count(название колонки курсора) - количество строк в заданной колонке
  • countdistinct(название колонки курсора) - количество строк с уникальными значениями в заданной колонке
  • countnotempty() - количество строк с не пустыми значениями в текущей колонке. Применяется для всех типов данных
  • group(название колонки курсора) - используется для условия подсчёта подытогов. Подытог рассчитывается только для данных, группируемых по колонке, указанной в group.

Формулы 3-го рода - формулы первого и второго рода и операторы для $-выражений. Например:

sum(название колонки курсора) + min() - сумма значений заданной колонки плюс минимальное значение в текущей колонке.

XM-формула

Есть возможность так же использовать xm-формулы, они обязательно должны быть обернуть в $ выражение - ${Текст формулы}

summaryformat строка нет нет Формат отображения данных итогов и подытогов колонки:
  • currency - отображение денег
  • number - отображение произвольного числа

Примечание: если в summary колонки находится формула 2-го или 3-го рода (см. summary), то необходимо определить формат итога

для значения формулы с помощью summaryformat.

headerstyle стиль да нет Стиль шапки колонки. Фактически используется только для задания ширины колонки.
contentstyle стиль да нет Стиль данных по колонке. Никак не влияет на внешний вид колонки. Добавлен на случай будущего расширения стилей дополнительными атрибутами.
descriptionfunc строка нет нет Наименование апп-функции, для получения описания картинки
visible строка нет 1|true да нет Видимость столбца. Возможные значения "1"|"true" или "0"|"false" (независимы от регистра).

Примечание: если при обращении к этому атрибуту его значение в строковом виде равно "1" или "true", то оно принимается за true, в случае любых других значений включая пустую строку или NULL оно принимается за false.

widthinchars число нет нет нет Начальная ширина колонки в размере равном указанному количеству латинских символов "a"
icons строка нет нет нет Список идентификаторов системных иконок которые последовательно будут отображаться в поле типа checkicon при изменении значения поля. (Первая иконка списка отображается при значении поля 0, вторая 1 итд)
cellstyle строка нет нет нет нет Название колонки, содержащей информацию о раскраске ячейки в колонке таблицы.

Значением в поле колонки стиля должна быть строка, содержащая json с настройками стилизации ячейки в строке.

Поддерживаются следующие параметры стилизации:

bgcolor - цвет заливки ячейки

textcolor - цвет текста ячейки

textalign - кастомное выравнивание содержимого ячейки по горизонтали (  left, center, right )

fractionDigits - количество знаков после запятой для ячеек с типом "number" - (параметр числовой - то есть "fractionDigits": 2 , а не "2")

bold (true/false) - жирный шрифт

italic (true/false) - курсив

underline (true/false) - подчеркивание

strikethrough (true/false) - перечеркивание

Например '{"bgcolor": "#00ff00", "textcolor": "#ffff00", "underline": true, "strikethrough": false}'

Важно, чтобы значением свойств bold, italic, underline и strikethrough было именно булево значение true или false, а не строки "true" или "false"

headerLineBreak булеан false нет нет Признак переноса строки в заголовке колонки.
headerTextAlign строка left нет нет Выравнивание текста в заголовке колонки:
  • left - по левому краю;
  • center - по центру;
  • right - по правому краю;
  • justify - по ширине.
withDischarges булеан нет false нет нет Разделение на разряды. Учитывается для колонок с форматом отображения число или деньги.

Обработчики событий

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
ondrilldown действие (action/actiongroup) да нет Название действия при проваливании в ячейку. Информацию о ячейке можно получить из атрибутов selectedCell, selectedSourceField, selectedRow
ondrillsummary действие (action/actiongroup) да нет Название действия при проваливании в строку итогов. Информацию о группировки можно получить из атрибута selectedGroup
onchangevalue действие (action/actiongroup) да нет Для displayformat "check" и "checkicon" - определяет действие которое будет вызываться при смене значения в ячейке (клике на чекбокс/иконку).

Вызывается после установки нового значения в гриде.

Форматирование данных

Тип данных/displayformat Выравнивание Способ форматирования
Число/number справа
  • В целой части используются разделители тысячных в виде пробелов
  • Дробная часть отображается только при ее наличии, т.е. она не равна 0
  • Дробная часть может иметь длину не более 6 знаков
  • Если дробная часть имеет больше 6 знаков, она округляется по правилам математики
  • Дробная часть не должная содержать в качестве последних символов нули
Дата/date по центру Формат отображения: dd.mm.yyyy hh24:mi:ss.

Время отображается только, если оно не равно 00:00:00

/datetime по центру Формат отображения: dd.mm.yyyy hh24:mi:ss
/currency справа
  • В целой части используются разделители тысячных в виде пробелов
  • Дробная часть всегда отображается и имеет два знача после запятой. Например, для целый чисел дробная часть равна "00"
Строка/string (в разработке) слева Данные, отличные от строки, форматируются в строку согласно правилам "Способ форматирования" для каждого типа данных. Исключение для чисел, при форматировании в строку для них не используются разделители тысячных

Числовое поле (edit)

Компонент для ввода числовых данных (numedit).

Числовое поле.png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
displayformat перечислимый нет number нет нет Формат отображения данных:
  • currency - отображение денег
  • number - отображение произвольного числа
totalDigits число нет нет нет Допустимая длина числа

Мин. - 1 (oracle), макс. - 38 (oracle)

Если значение не задано, оно считается равным максимальному

fractionDigits число нет нет нет Допустимая длина дробной части

Мин. - 1 (oracle), макс. - 10 (oracle)

Если значение не задано, оно считается равным максимальному

withDischarges булеан нет true нет нет Разделить число на разряды
incDecButtonsNeeded булеан нет false нет нет Управляет отображением кнопок увеличения\уменьшения значения на 1.

Текстовое поле ввода (numedit)

Компонент для ввода текстовых данных (edit).

Текстовое поле.png

Свойства

Название атрибута Тип данных Обязательность Значение по умолчанию Может содержать скрипт Доступ из скрипта Описание
password булеан нет false нет да При истинном значении текст отображается в зашифрованном виде
maxlength число нет 0 нет да Наибольшая возможная длина текста. Если введено число символов больше, чем заданная максимальная длина, то текст обрезается до размера, указанного в maxlength.

В случае отсутствия этого атрибута или его нулевого или отрицательного значения длина текста ничем не ограничена.

immediateChange булеан нет false нет нет Требование XM-документу реагировать на каждое изменение соджержимого строки ввода и немедленно производить соответствующие расчеты.
mask строка нет нет нет Маска ввода. Содержит шаблон, по которому будет форматировано значение поля.

Шаблоны бывают двух видов - маска и обычное регулярное выражение.

1) Шаблон типа "Маска":

0 - любое число

a (латинская) - любая буква

* - любой символ

[] - все, что внутри, к вводу необязательно

{} -все, что внутри, останется в value у поля. Используется для тех символов, которые уже являются частью маски изначально - например, знаки пунктуации. Так, данные, введенные по маске 000-000 не будут в итоге содержать дефиса (он будет добавляться только в саму маску поля, без передачи в БД\хранилище при сохранении), а по 000{-}000 - будут.

Если какой-то из вышеперечисленных символов нужно вставить буквально, его надо экранировать обратным слешем - \ (то есть \0 позволит только ноль вставить).


Также существует возможность вставить в шаблон типа "Маска" регулярное выражение с квантификатором. Само регулярное выражение должно записываться в круглых скобках, например:

([A-Z])

Такая запись будет соответствовать одному символу. Если символов несколько, то добавляется квантификатор в круглых скобках, следующих за скобками с RegExp:

([A-Z])(4) - нужно ввести строго 4 символа.

([A-Z])(1,4) - минимум один, максимум 4.

Квантификатор не может быть открытый, т.к. шаблон типа "Маска" подразумевает точное указание количества символов.

Если необходимо сделать круглую скобку частью маски, то ее нужно экранировать обратным слешем - \. Пример:

\(([A-Z])(1, 4)\) - ввод пользователя будет обрамлен круглыми скобками.

2) Шаблон типа "Регулярное выражение":

RegExp нужно вводить в поле как обычное регулярное выражение, но оно должно быть таким, чтобы поддерживался промежуточный ввод. Например:

^\d{1,2}\/\d{1,2}\/\d{4}$ - не поддерживается, т.к. предполагает одновременное наличие минимум 6 символов.

^\d{0,2}\/?\d{0,2}\/?\d{0,4}$ - поддерживается, т.к. допускает промежуточный ввод.

^\d{1,2}\/?\d{0,2}\/?\d{0,4}$ - тоже поддерживается, т.к. первым символом будет введено число - и строка будет соответствовать RegExp.

Для правильной интерпретации следует добавлять в начало выражения - ^, а в конец - $.


В целом, шаблон типа "Маска" следует использовать для более строгих форматов, а RegExp - для более открытых (только цифры, буквы и т.п.)

maskType строка нет pattern нет нет Тип маски ввода. Содержит строку, по которой определяется тип маски - шаблон библиотеки IMask или RegExp.