Отображение в выборке#

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

Стандартные отображения для класса:

  • Default — отображение по умолчанию. В нем определяется общая функциональность для данных выборки. Остальные отображения обычно наследуют это отображение;

  • List — отображение для списка объектов класса;

  • Card — отображение для карточки объекта;

Пользовательские настройки отображения#

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

К таким настройкам относятся:

  • видимость колонок;

  • порядок следования колонок;

  • ширина колонок;

  • сортировка колонок;

  • группировка строк;

  • отображение области итогов.

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

Интеграционные события#

При работе с настройками вызываются события ядра:

  • onSaveUserSettings — сохранение пользовательской настройки;

  • onSaveAsUserSettings — сохранение как новой настройки;

  • onLoadUserSettings — загрузка выбранной настройки;

  • onLoadDefaultUserSettings — загрузка настройки при открытии выборки.

Логика событий реализуется на прикладном уровне, управление пунктами меню выполняется ядром.

Управление пользовательскими настройками отображения#

Управление настройками выполняется через контекстное меню списка.

Чтобы открыть меню:

  • нажмите правой кнопкой мыши на любую область таблицы;

  • выберите пункт «Настройки пользователя».

Доступны операции:

  • сохранение настройки;

  • сохранение настройки с новым именем;

  • загрузка настройки;

  • восстановление настроек по умолчанию.

Сохранение настроек#

Чтобы сохранить текущую настройку:

  • откройте контекстное меню списка;

  • выберите «Настройки пользователя» > «Сохранить» или «Сохранить как».

Откроется окно сохранения настроек.

В окне указываются:

  • наименование настройки;

  • доступность:

    • Для всех;

    • Для пользователей — доступен выбор пользователей;

    • Профиль — доступен выбор профиля;

    • Только для меня.

Дополнительно:

  • может быть установлен признак «По умолчанию» — такая настройка применяется при открытии выборки.

Для завершения используется кнопка «Выбор».
После сохранения настройка применяется к текущему отображению.

Загрузка настроек#

Для одного интерфейса может быть сохранено несколько пользовательских настроек.

Чтобы загрузить сохранённую настройку:

  • откройте контекстное меню списка;

  • выберите «Настройки пользователя» > «Загрузить».

Откроется список доступных настроек. Доступны фильтры:

  • Личные — настройки текущего пользователя;

  • Общие — доступные настройки (для всех, пользователей, профилей);

  • Других пользователей — остальные настройки.

Для скрытия общих настроек снимите флаг «Общие».

После выбора настройка применяется к списку.

Восстановление настроек по умолчанию#

Восстановление настроек по умолчанию через интерфейс системы

Чтобы вернуть отображение к исходному виду:

  • откройте контекстное меню списка;

  • выберите «Восстановить настройки по умолчанию».

Это основной пользовательский способ сброса настроек.

Восстановление настроек по умолчанию через прикладной код

Внимание

Метод следует использовать только в ситуациях, когда восстановление через интерфейс не сработало.

Для программного сброса используется метод:

selection.layout.frame.view.asListView.restoreDefaultSettings()

Пример:

override def beforeFirstOpen(): Unit = {
  super.beforeFirstOpen()
  selection.layout.frame.view.asListView.restoreDefaultSettings()
}

Метод сбрасывает пользовательские настройки list-view и восстанавливает отображение в соответствии с конфигурацией выборки.

Применение настройки по умолчанию#

Для одной выборки может быть задано несколько настроек с признаком «По умолчанию».

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

  • Только для меня;

  • Для пользователей;

  • Профиль;

  • Для всех.

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

Ограничения прав доступа#

Настройка прав доступа выполняется в приложении «Администратор» в разделе: Доступ > Роли > Права роли. Подробнее про права роли см. в Администрирование приложений.

В системе права доступа для работы с пользовательскими настройками списка определяются администрируемым объектом Btk_SelGridSetting.

В объекте используются следующие привилегии:

  • CanEditPublicSetting — сохранение и редактирование публичных настроек.
    Определяет возможность создавать и изменять настройки с доступностью:

    • Для пользователей;

    • Профиль;

    • Для всех.

    При отсутствии данной привилегии:

    • недоступен выбор указанных типов доступности;

    • недоступно редактирование соответствующих настроек;

    • невозможно сохранить настройку, если активна настройка с публичной доступностью.

  • CanEditAnotherUserSetting — редактирование настроек других пользователей.
    Определяет возможность изменять настройки, созданные другими пользователями.
    При отсутствии данной привилегии редактирование доступно только для собственных настроек.

Ограничения прав доступа учитываются как при сохранении, так и при редактировании и загрузке настроек.

Примеры сценариев#

Сохранение удобного представления списка

Пользователь настраивает состав колонок и сортировку, затем сохраняет настройку через
«Настройки пользователя» > «Сохранить как».
В дальнейшем настройка может быть быстро загружена при работе с выборкой.

Использование настройки по умолчанию

Сохраняется настройка с признаком «По умолчанию».
При открытии выборки она применяется автоматически без дополнительных действий.

Сброс некорректных настроек

После изменения разметки списка ранее сохранённые настройки могут работать некорректно.
В этом случае используется:

  • пользовательский сценарий — «Восстановить настройки по умолчанию»;

  • программный сброс — restoreDefaultSettings() (в исключительных случаях).

Восстанавливать изменения в интерфейсе при переоткрытии#

Флажок управляет приоритетом между автоматически сохраняемыми настройками интерфейса (автонастройками) и явно сохраненными пользовательскими настройками.

Назначение#

Флаг определяет, какие настройки применяются при открытии выборки:

  • автонастройки (состояние интерфейса, сохраненное в реестре при закрытии);

  • пользовательские настройки (сохраненные через контекстное меню).

Значение по умолчанию: включено.

Уровни конфигурации#

Уровень

Параметр / элемент

Описание

Сервер

Configuration.Databases.Database.UI.AutoSettings.RestoreAutoSettingsRegardlessOfUserSettings

Глобальный приоритет автонастроек над пользовательскими настройками. По умолчанию true

Сервер

Configuration.Databases.Database.UI.AutoSettings.AllowUserToChangeSettings

Разрешение пользователю изменять флаг. По умолчанию true

Главное меню

Флажок "Восстанавливать изменения в интерфейсе при переоткрытии"

Пользовательское управление флагом (CoreApplication.AutoSettings.RestoreWhenHasUserSettings)

Контекстное меню грида

Флажок "Восстанавливать изменения в интерфейсе при переоткрытии"

Дублирующий элемент управления, может быть отключен администратором

Логика применения при открытии выборки#

При открытии выборки система определяет источник настроек:

Если флаг включен

  • есть автонастройки в реестре > применяются автонастройки;

  • нет автонастроек > применяется пользовательская настройка (если существует).

Если флаг выключен

  • есть пользовательская настройка > применяется она;

  • нет пользовательской настройки > применяются автонастройки из реестра.

Автонастройки продолжают сохраняться в реестре независимо от выбора флага и используются как fallback-источник.

Поведение при наличии пользовательских и административных настроек#

В режиме строгой администраторской политики:

  • администраторская конфигурация имеет приоритет над пользовательской;

  • пользователь не может переопределить поведение через сохраненные настройки;

  • применение пользовательских настроек ограничивается логикой флага восстановления.

Режим активируется параметром: RestoreAutoSettingsRegardlessOfUserSettings = true

Ограничение изменения флага#

Возможность изменения флага определяется серверным параметром: Configuration.Databases.Database.UI.AutoSettings.AllowUserToChangeSettings

Если параметр выключен:

  • флаг в UI становится недоступным для изменения;

  • доступно только администраторское управление.

Техническая реализация#

  • пункты контекстного меню реализуются в ядре;

  • бизнес-логика обработки — на прикладной стороне;

  • при наведении на недоступные пункты может отображаться причина блокировки (для диагностики).

Флаг на уровне API:

ru.bitec.gtk.core.gl.CoreAutoSettings.isAllowUserToChangeSettings()

Переопределение поведения:

ru.bitec.gtk.core.gl.CoreAutoSettings.isRestoreAutoSettingsRegardlessOfUserSettings()

Итоговое поведение формируется на уровне:

CoreApplication.autoSettings()