Сохранение пользовательских настроек приложения
Формулировка задачи
Сохранять персональные на стройки пользователя, примененные на страницах приложения на базе Атомкод, и применять эти персональные настройки при повторном открытии страниц.
Предположим, пользователь запустил разработанное на базе Атомкод приложение и при просмотре страницы Х приложения настроил сортировку данных в порядке возрастания. Затем пользователь закрыл приложение и открыл еще раз или перезагрузил страницу Х. При переходе к странице Х приложения пользователю должны быть отображены данные в порядке возрастания, то есть в порядке, который использовался до повторного открытия страницы Х.
Предварительные требования
Вы настроили сортировку данных в компоненте DataGrid и теперь хотите сохранять пользовательские настройки сортировки.
Рекомендуемое решение задачи
Пользовательские настройки можно сохранять в базе данных сервиса пользовательских настроек Атомкод.
Рекомендуемый подход к решению описанной задачи включает следующие шаги:
-
Выбор экранной формы, на которой нужно сохранять пользовательские настройки.
В списке экранных форм проекта выберите экранную форму ProjectPage, на которой размещен компонент DataGrid.
-
Изменение кода обработчика событий, который управляет отображением данных.
В код описания обработчика событий OnSort() добавьте получение текущих параметров сортировки и их сохранение в базе данных сервиса пользовательских настроек. Следующий блок кода демонстрирует сохранение в базе данных сервиса пользовательских настроек параметров сортировки по ключу
sortSettings.OnSort={() => {
getDataSource("getProject").load();
const sortSettings = getEvent(); // получение текущих настроек сортиро вки
setGlobalValue("sortSettings", JSON.stringify(sortSettings)); // вызыв метода сохранения пользовательских настроек в базе данных сервиса пользовательских настроек
}} -
Изменение скрипта, выполняемого при загрузке страницы, с учетом применения сохраненных пользовательских настроек.
После перезагрузки страницы необходимо получить настройки пользователя из базы данных сервиса пользовательских настроек и применить эти настройки. Эти действия описываются в разделе 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
},
]}