Topic: Хранение настроек ширины колонок таблицы в базе
Многопользовательское приложение работает с СУБД MySQL. Возникла необходимость сохранять/восстанавливать настройки колонок в базе данных. Неожиданно возникла проблема.
Исходные данные:
1. Восстановление ширины происходит в обработчике события OnChange
2. На форме есть кнопка "Обновить", (кнопка с функцией обновления таблицы), которая вызывает событие OnChange
3. Событие таблицы OnColumnResize вызывается при любом изменении ширины колонки (вручную, скриптом или внутренним алгоритмом MVD). То есть, при загрузке данных из базы оно вызывается N раз, где N - число колонок. Если используется SQL-запрос, то событие вызывается 2N раз.
Вопрос: в какой момент сохранять настройки?
Если это делать при закрытии формы (как это сделано в MVD) , то в этом случае, если пользователь изменил настройки, а затем нажал кнопку "Обновить", изменения не сохранятся. Добавить сохранение при нажатии кнопки "Обновить" тоже нельзя, так как при первом запуске формы таблица не содержит колонок, они появляются только после заполнения таблицы данными.
Причины проблемы
1. Не вижу возможности отследить ручное изменение ширины колонки
2. Не вижу возможности определить, была ли уже осуществлена загрузка данных в таблицу из БД.
Буду признателен за любые идеи, как решить эту задачу.
P.S. Пока вижу только один вариант: сделать отдельную кнопку для сохранения изменений настройки....