Сохранение параметров грида

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 27: Строка 27:
 
#
 
#
  
===Таблицы значений===
 
 
Цвета, размеры шрифта, гарнитура и т.п. указываются не непосредственно, а как ссылки на таблицы значений. Замена такой таблицы позволит сменить цветовую гамму программы, размер экранных элементов и т.п.
 
  
  
 
===Таблицы===
 
===Таблицы===
  
  objtype        dinteger_notnull  -- тип объекта. 0 -- тип данных, 1 -- домен, 2 -- таблица, 3 -- поле таблицы...
+
* [[AT_THEME]]
  objname
+
* [[AT_STYLE]]
  propname
+
  intvalue
+
  strvalue
+
  userkey        dforeignkey
+
  themekey        dforeignkey
+
 
+
  
 
=== Размерности ===
 
=== Размерности ===

Версия 00:04, 22 февраля 2016

Разрабатывается система для работы со всеми визуальными настройками платформы, но, в первую очередь, для работы с визуальными настройками гридов.

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

Ядром системы будет объект TgdStyleManager, который отвечает за следующие функции:

  • Считывание настроек из реляционных таблиц и хранение в оперативной памяти в структурах, обеспечивающих максимальную скорость доступа.
  • Поиск подходящих настроек в соответствии с переданным контекстом.
  • Кэширование настроек между запусками программы. Сохранение в файле на локальном жестком диске. При запуске проверяется: менялись ли настройки в БД и если нет, то берутся из файла.
  • Запись изменений в базу данных по команде или при завершении работы программы.
  • Копирование настроек между пользователями системы.

Менеджер стилей работает на подобии технологии CSS. Например, запрашивается гарнитура шрифта для некоторой колонки грида:

  1. Сначала ищем указанный параметр по имени колонки, имени грида и имени типа формы (с учетом подтипа).
  2. Если не найден и грид подсоединен к БО, то ищем для бизнес-класса и имени поля.
  3. Если не найден, то ищем для таблицы и поля.
  4. Если не найден и для поля определен домен, то ищем для домена.
  5. Если не найден, то ищем для типа данных.
  6. Если не найден и определены общие параметры, то берем из них.

При этом, на каждом шаге ищем в следующем порядке:

  1. Для текущего пользователя.
  2. Если не найден, то для группы, в которую входит текущий пользователь (если входит в несколько, то берем из первой попавшейся под руку).


Содержание

Таблицы

Размерности

  • Грид (компонента) -- имя, имя родителя
  • Поле-таблица
  • Домен/класс данных
  • Бизнес-класс
  • Тема
  • Пользователь
  • Язык
  • Представление

Конвертация

Диалоговое окно настройки грида

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты