Сохранение параметров грида
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 3: | Строка 3: | ||
Сейчас параметры грида хранятся в двоичном потоке, в Хранилище. Причем для каждого грида, для каждой его колонки, сохраняются все параметры вне зависимости от того используются они или нет, отличаются от установленных на уровне колонки таблицы и домена или нет. | Сейчас параметры грида хранятся в двоичном потоке, в Хранилище. Причем для каждого грида, для каждой его колонки, сохраняются все параметры вне зависимости от того используются они или нет, отличаются от установленных на уровне колонки таблицы и домена или нет. | ||
| − | Ядром системы будет объект TgdStyleManager, который отвечает за следующие функции: | + | Ядром системы будет объект '''TgdStyleManager''', который отвечает за следующие функции: |
| + | * Считывание настроек из реляционных таблиц и хранение в оперативной памяти в структурах, обеспечивающих максимальную скорость доступа. | ||
| + | * Поиск подходящих настроек в соответствии с переданным контекстом. | ||
| + | * Кэширование настроек между запусками программы. Сохранение в файле на локальном жестком диске. При запуске проверяется: менялись ли настройки в БД и если нет, то берутся из файла. | ||
| + | * Запись изменений в базу данных по команде или при завершении работы программы. | ||
| + | * Копирование настроек между пользователями системы. | ||
| + | Менеджер стилей работает на подобии технологии CSS. Например, запрашивается гарнитура шрифта для некоторой колонки грида: | ||
| + | # Сначала ищем указанный параметр по имени колонки, имени грида и имени типа формы (с учетом подтипа). | ||
| + | # Если не найден и грид подсоединен к БО, то ищем для бизнес-класса и имени поля. | ||
| + | # Если не найден, то ищем для таблицы и поля. | ||
| + | # Если не найден и для поля определен домен, то ищем для домена. | ||
| + | # Если не найден, то ищем для типа данных. | ||
| + | # Если не найден и определены общие параметры, то берем из них. | ||
| − | + | При этом, на каждом шаге ищем в следующем порядке: | |
| + | |||
| + | # Для текущего пользователя. | ||
| + | # Если не найден, то для | ||
| + | |||
| + | |||
| + | |||
| + | ===Таблицы=== | ||
objtype dinteger_notnull -- тип объекта. 0 -- тип данных, 1 -- домен, 2 -- таблица, 3 -- поле таблицы... | objtype dinteger_notnull -- тип объекта. 0 -- тип данных, 1 -- домен, 2 -- таблица, 3 -- поле таблицы... | ||
| Строка 19: | Строка 38: | ||
| − | + | === Размерности === | |
| − | + | ||
* Грид (компонента) -- имя, имя родителя | * Грид (компонента) -- имя, имя родителя | ||
| Строка 31: | Строка 49: | ||
* Представление | * Представление | ||
| + | ===Конвертация=== | ||
| + | |||
| + | |||
| + | ===Диалоговое окно настройки грида=== | ||
[[Category:Постановка]] | [[Category:Постановка]] | ||
Версия 18:53, 21 февраля 2016
Разрабатывается система для работы со всеми визуальными настройками платформы, но, в первую очередь, для работы с визуальными настройками гридов.
Сейчас параметры грида хранятся в двоичном потоке, в Хранилище. Причем для каждого грида, для каждой его колонки, сохраняются все параметры вне зависимости от того используются они или нет, отличаются от установленных на уровне колонки таблицы и домена или нет.
Ядром системы будет объект TgdStyleManager, который отвечает за следующие функции:
- Считывание настроек из реляционных таблиц и хранение в оперативной памяти в структурах, обеспечивающих максимальную скорость доступа.
- Поиск подходящих настроек в соответствии с переданным контекстом.
- Кэширование настроек между запусками программы. Сохранение в файле на локальном жестком диске. При запуске проверяется: менялись ли настройки в БД и если нет, то берутся из файла.
- Запись изменений в базу данных по команде или при завершении работы программы.
- Копирование настроек между пользователями системы.
Менеджер стилей работает на подобии технологии CSS. Например, запрашивается гарнитура шрифта для некоторой колонки грида:
- Сначала ищем указанный параметр по имени колонки, имени грида и имени типа формы (с учетом подтипа).
- Если не найден и грид подсоединен к БО, то ищем для бизнес-класса и имени поля.
- Если не найден, то ищем для таблицы и поля.
- Если не найден и для поля определен домен, то ищем для домена.
- Если не найден, то ищем для типа данных.
- Если не найден и определены общие параметры, то берем из них.
При этом, на каждом шаге ищем в следующем порядке:
- Для текущего пользователя.
- Если не найден, то для
Содержание |
Таблицы
objtype dinteger_notnull -- тип объекта. 0 -- тип данных, 1 -- домен, 2 -- таблица, 3 -- поле таблицы... objname propname intvalue strvalue userkey dforeignkey themekey dforeignkey
Размерности
- Грид (компонента) -- имя, имя родителя
- Поле-таблица
- Домен/класс данных
- Бизнес-класс
- Тема
- Пользователь
- Язык
- Представление