EditableGrid
Назначение компонента
Редактируемая таблица - это компонента, которая используется для отображения информации из базы данных в табличном виде с возможностью изменения значений.
Свойства
Компонента имеет набор общих свойств.
| Наименование свойства | Назначение свойства | Принимаемые значения |
|---|---|---|
| Multiselectable | позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет |
|
| Checkbox Column | позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой Таблица |
|
| Ref To Main Table PK | указывает колонку, в которой записан Main Table PK Column | |
| Main Table PK Column | указывает id строки на основе, которой будет производиться выборка в таблицу | |
| Row click selection type | позволяет задать поведение выбора строк при клике на строку Таблицы |
|
| Row edition type | позволяет указать тип открытия редакторов ячеек |
|
| Row Height | позволяет задать высоту строки в таблице в пикселях (px) пример возможного значения: 20 | |
| Auto Stretch Columns | позволяет задать возможность автоматического выравнивания ширины столбцов по ширине |
|
| Pinned Bottom Row Label | позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) | пример возможного значения: Итого |
Для добавления колонки в таблицу необходимо добавить один из компонент:
- AutoCompleteGridColumn
- CheckBoxGridColumn
- ComboboxGridColumn
- DateTimePickerGridColumn
- NumberFieldGridColumn
- OneToManyGridColumn
- TextAreaGridColumn
- TextFieldGridColumn
- TimePickerGridColumn
Настройка колонок компоненты
| Наименование | Назначение |
|---|---|
| Pinned | Указывает с какой стороны закрепить колонку |
| Hidden | Указывает видимость колонки |
| Editable | Задает возможность изменять значения в колонке |
| Header Type | Задает тип заголовка колонки(статичный или из переменной процесса) |
| Sortable | Задает возможно сортировать таблицу по значениям колонки |
| Id Column | Задает колонку из базы, откуда будут заполнятся значения в таблице |
Скрипты
- MaxAggregationRowValidator -
- MinAggregationRowValidator -
- RequiredAggregationRowValidator -
- EditableGridColumnAggregator - скрипт для подсчёта данных с помощью математических функций или функций агрегации
- aggregationType - тип функции
- BY_COLUMNS - функция агрегации
- MATH_EXPRESSION - математическое выражение
- aggregationFunction - Задает дополнительную ячейку со значением, полученным в результате выполнения выбранной функции агрегации. Одно из списка: MAX, MIN, AVG, COUNT, SUM, MULTIPLY. Если задан aggregationType==BY_COLUMNS
- columns - колонки для агрегации. Если задан aggregationType==BY_COLUMNS
- mathExpression - Математическое выражение. Например
${a_column_id}*${b_column_id}. Можно задать если MATH_EXPRESSION=MATH_EXPRESSION. Допустимые операции: сложение+, вычитание-, умножение*, деление/, остаток от деления%, возведение в степень**. См. https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Math#arithmetic_operators. Если задан aggregationType==MATH_EXPRESSION
- aggregationType - тип функции
Форматеры
| Наименование форматера | Назначение форматера | Настраиваемые значения |
|---|---|---|
| NumberAggregationFormatter | Форматирует агрегированное значение в ‘итого’. | Script, Decimal Delimiter, Decimal Length, Sections Delimiter, Sections Length. |
| RoundingAggregationFormatter | Округляет агрегированное числовое значение в ‘итого’. | Decimals. |
Часто задаваемые вопросы
| Вопрос | Ответ |
|---|---|
| Какие таблицы БД необходимо включать в Граф сущностей редактируемого грида? Только те, в которые необходимо сохранять данные при сохранении или включать и те таблицы, которые используются и для отображения данных в элементах, входящих в таблицу (комбобокс например)? | Включать необходимо все таблицы отображаемые в гриде. |
| При редактировании записей и последующем сохранении в БД производился INSERT новой записи, а не UPDATE уже существующей.? | Неправильная настройка компоненты. |
| Каким образом настраивать свойство “Подлежит сохранению” у самого грида и элементов внутри него? В той ячейке, где мне не нужно сохранять данные в БД ставит значение FALSE ? | Свойство"Подлежит сохранению"необходимо указывать только у EditableGrid. |
| Как будет работать компонента ОТМ внутри грида. При быстром просмотре и добавлении увидели, что нет возможности вызвать диалоговое окно для выбора записи | Будет исправлено в последующих версиях |
| При использовании комбинации ctrl A, ctrl C и ctrl V в строке данные вставляются, но при переключении на другую строку сбрасываются. | При копировании значения из одного эдитора в другой, значение вставляется, в случае вставки значения в Combobox необходимо дополнительно выбрать значение из списка. |
| Каким образом будет настроено удаление записи в гриде? | Выделение строк и нажатие кнопки удаления. |
| Как подвести итоги по колонке, а не по строчке | Чтобы подвести итог по колонке, необходимо в нужной колонке указать свойства Aggregation Function |
| Как обратиться к ячейке, чтобы задать значение с помощью ActionController, например, при нажатии на кнопку на форме | Если нажата кнопка “Отклонить” на форме, то для всех ранее отмеченных строк (с помощью флага) в EG выставить значение ячеек статус (ComboBox) в этих строках в значение “Отклонить”. С помощью ActionController нельзя обратиться к ячейке. |
| Как реализовать проверку заполненности ячейки EG в зависимости от значения другой ячейки с выдачей диалога и последующим возвращением фокуса в ячейку, которая не должна остаться пустой. Как это сделать в рамках одной строчки, а также в рамках разных строчек, а также всего EG (например, в зависимости от каких то агрегатов - итогов по строчкам или колонкам). Если пользователь выбирает в ячейке EG статус “Отклонено” (ComboBox) , то соседняя ячейка в строке “Причина отклонения” не должна остаться пустой - выдать диалог и вернуться в пустую ячейку, не давая из нее выйти без заполнения .• Если за день списано больше 24 часов - то вызвать диалог “Много работаете”• Если в понедельник по первой задаче списано 8 часов, то в среду по связанной задаче не может быть меньше 4 часов.• Перед самым моментом сохранения формы, проверить ВСЕ ячейки EG в колонке “комментарий пользователя” на их заполненность , если в соседних ячейках “Статус” найдены значения “Отклонить”. | С помощью ActionController нельзя обратиться к ячейке. |
| Как задать фиксированную ширину колонки EG в пикселях? | Можно задать Width в ячейке. Чтобы зафиксировать ширину нужно задать Width Fixed, временно эта функция не работает, исправляем. |