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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 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. Например, запрашивается гарнитура шрифта для некоторой колонки грида:

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

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

  1. Для текущего пользователя.
  2. Если не найден, то для


Содержание

Таблицы

 objtype         dinteger_notnull  -- тип объекта. 0 -- тип данных, 1 -- домен, 2 -- таблица, 3 -- поле таблицы...
 objname
 propname
 intvalue
 strvalue 
 userkey         dforeignkey
 themekey        dforeignkey


Размерности

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

Конвертация

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

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

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