Перейти к основному содержимому

Сохранение пользовательских настроек приложения

Формулировка задачи

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

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

Предварительные требования

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

Рекомендуемое решение задачи

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

Рекомендуемый подход к решению описанной задачи включает следующие шаги:

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

    В списке экранных форм проекта выберите экранную форму ProjectPage, на которой размещен компонент DataGrid.

  2. Изменение кода обработчика событий, который управляет отображением данных.

    В код описания обработчика событий OnSort() добавьте получение текущих параметров сортировки и их сохранение в базе данных сервиса пользовательских настроек. Следующий блок кода демонстрирует сохранение в базе данных сервиса пользовательских настроек параметров сортировки по ключу sortSettings.

    OnSort={() => {
    getDataSource("getProject").load();
    const sortSettings = getEvent(); // получение текущих настроек сортировки
    setGlobalValue("sortSettings", JSON.stringify(sortSettings)); // вызыв метода сохранения пользовательских настроек в базе данных сервиса пользовательских настроек
    }}
  3. Изменение скрипта, выполняемого при загрузке страницы, с учетом применения сохраненных пользовательских настроек.

    После перезагрузки страницы необходимо получить настройки пользователя из базы данных сервиса пользовательских настроек и применить эти настройки. Эти действия описываются в разделе Scripts экранной формы. В скрипте без параметров опишите получение настроек, а также следующее условие: если пользователь не настраивал сортировку, после перезагрузки страницы должны применяться параметры сортировки по умолчанию.

    Поскольку загрузка данных с помощью источника данных происходит до выполнения скрипта, в текст скрипта добавьте вызов метода load() (см. строку getDataSource("getProject").load()) для отображения сортированных данных.

    Scripts={[
    async () => {
    const sortSettingsJSON = await getGlobalValue('sortSettings'); // получение пользовательских настроек из базы данных сервиса пользовательских настроек
    let sortSettings;
    try {
    sortSettings = JSON.parse(sortSettingsJSON); // если пользовательские настройки получены, использовать их при отображении данных на этой странице приложения
    } catch(e) {
    sortSettings = [{ name: "ASC" }]; // если пользовательские настройки не получены, использовать параметр сортировки по умолчанию при отображении данных на этой странице приложения
    }
    setState({ // применение параметров сортировки
    sortSettings,
    });
    getDataSource("getProject").load(); // загрузка данных из источника данных getProject
    },
    ]}