Сохранение параметров грида
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 7: | Строка 7: | ||
* Считывание настроек из реляционных таблиц и хранение в оперативной памяти в структурах, обеспечивающих максимальную скорость доступа. | * Считывание настроек из реляционных таблиц и хранение в оперативной памяти в структурах, обеспечивающих максимальную скорость доступа. | ||
* Поиск подходящих настроек в соответствии с переданным контекстом. | * Поиск подходящих настроек в соответствии с переданным контекстом. | ||
| − | * Кэширование настроек между запусками программы. Сохранение в файле на локальном жестком диске. При запуске проверяется: менялись ли настройки в БД и если нет, то берутся из файла. | + | * Кэширование настроек между запусками программы. Сохранение в файле на локальном жестком диске при выходе. При запуске проверяется: менялись ли настройки в БД и если нет, то берутся из файла. |
| − | * Запись изменений в базу данных по команде или при завершении работы программы. | + | * Запись изменений, сделанных в течении сессии, в базу данных по команде или при завершении работы программы. |
| − | * Копирование настроек между пользователями системы. | + | * Копирование настроек между пользователями системы или от пользователя системы в общие настройки. |
| + | * Оптимизация настроек -- удаление частных настроек, которые дублируют общие настройки. | ||
Менеджер стилей работает на подобии технологии CSS. Например, запрашивается гарнитура шрифта для некоторой колонки грида: | Менеджер стилей работает на подобии технологии CSS. Например, запрашивается гарнитура шрифта для некоторой колонки грида: | ||
| Строка 23: | Строка 24: | ||
# Для текущего пользователя. | # Для текущего пользователя. | ||
| − | # Если не найден, то для группы, в которую входит текущий пользователь (если входит в несколько, то берем из первой попавшейся под руку). | + | # Если не найден, то для группы, в которую входит текущий пользователь (если входит в несколько, то берем из первой попавшейся под руку, для которой есть настройки). |
| − | # | + | # Сначала берем настройки для текущей темы. Если нет, то общие (без темы). |
| − | + | ||
| − | + | ||
| − | + | ||
===Таблицы=== | ===Таблицы=== | ||
| Строка 33: | Строка 31: | ||
* [[AT_THEME]] | * [[AT_THEME]] | ||
* [[AT_STYLE]] | * [[AT_STYLE]] | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
===Конвертация=== | ===Конвертация=== | ||
| + | Сначала перекинем все настройки гридов из двоичного потока один-в-один в таблицы. Затем оптимизируем, вынеся на общий уровень основные параметры и удалив их из пользовательских настроек. Данная процедура будет выполняться однократно. | ||
===Диалоговое окно настройки грида=== | ===Диалоговое окно настройки грида=== | ||
| + | |||
| + | |||
[[Category:Постановка]] | [[Category:Постановка]] | ||
| + | |||
| + | __NOTOC__ | ||
Версия 00:40, 22 февраля 2016
Разрабатывается система для работы со всеми визуальными настройками платформы, но, в первую очередь, для работы с визуальными настройками гридов.
Сейчас параметры грида хранятся в двоичном потоке, в Хранилище. Причем для каждого грида, для каждой его колонки, сохраняются все параметры вне зависимости от того используются они или нет, отличаются от установленных на уровне колонки таблицы и домена или нет.
Ядром системы будет объект TgdStyleManager, который отвечает за следующие функции:
- Считывание настроек из реляционных таблиц и хранение в оперативной памяти в структурах, обеспечивающих максимальную скорость доступа.
- Поиск подходящих настроек в соответствии с переданным контекстом.
- Кэширование настроек между запусками программы. Сохранение в файле на локальном жестком диске при выходе. При запуске проверяется: менялись ли настройки в БД и если нет, то берутся из файла.
- Запись изменений, сделанных в течении сессии, в базу данных по команде или при завершении работы программы.
- Копирование настроек между пользователями системы или от пользователя системы в общие настройки.
- Оптимизация настроек -- удаление частных настроек, которые дублируют общие настройки.
Менеджер стилей работает на подобии технологии CSS. Например, запрашивается гарнитура шрифта для некоторой колонки грида:
- Сначала ищем указанный параметр по имени колонки, имени грида и имени типа формы (с учетом подтипа).
- Если не найден и грид подсоединен к БО, то ищем для бизнес-класса и имени поля.
- Если не найден, то ищем для таблицы и поля.
- Если не найден и для поля определен домен, то ищем для домена.
- Если не найден, то ищем для типа данных.
- Если не найден и определены общие параметры, то берем из них.
При этом, на каждом шаге ищем в следующем порядке:
- Для текущего пользователя.
- Если не найден, то для группы, в которую входит текущий пользователь (если входит в несколько, то берем из первой попавшейся под руку, для которой есть настройки).
- Сначала берем настройки для текущей темы. Если нет, то общие (без темы).
Таблицы
Конвертация
Сначала перекинем все настройки гридов из двоичного потока один-в-один в таблицы. Затем оптимизируем, вынеся на общий уровень основные параметры и удалив их из пользовательских настроек. Данная процедура будет выполняться однократно.