Библиотека компонент EhLib Руководство разработчика


Использование TPropStorageEh и TPropStorageManagerEh



страница8/13
Дата09.08.2019
Размер456 Kb.
#128179
ТипРуководство
1   ...   5   6   7   8   9   10   11   12   13

Использование TPropStorageEh и TPropStorageManagerEh


Компоненты TPropStorageEh and TPropStorageManagerEh реализуют технологию сохранения свойств компонент в/из хранилища настроек, таких как ini-файы и реестр.

Данная версия поддерживает компоненты для сохранения/восстановления в/из ini-файлов и реестра. Базовым компонентом данной технологии является TPropStorageEh. Double-клик на компоненте в design-time открывает окно выбора свойств для сохранения. В дереве свойств вы можете выбирать нужные свойства. Список свойств это список всех published-свойств и объявленных в функции DefineProperty компонентов. Для TCollection кроме добавляется специальная ветвь свойств . Если вы выбираете подсвойство в данной ветви, компонент сохранит соответствующее подсвойство для каждого элемента коллекции.

Компонент TPropStorageEh может сохранять/восстанавливает значения свойств в поток, но для перенаправления потока в хранилище необходимо выполнить одно из следующих действий.
1. Поместите компонент, унаследованный от TPropStorageManagerEh на форму.

В данной версии есть два подобных компонента - это TIniPropStorageManEh и TRegPropStorageManEh.

Установите свойства этих компонентов и назначте в качестве свойства TPropStorageEh.StorageManager этот компонент.

2. Либо вы можете один раз написать код для регистрации глобального компонента - DefaultPropStorageManager. Все компоненты TPropStorageEh, у которых свойство StorageManager не назначено будут использовать менеджер DefaultPropStorageManager для перенаправления потока значений свойств в хранилище.

Код для регистрации глобального компонента может выглядеть следующим образом:

----------- MainUnit.Pas--------

......
var

IniPropStorageMan: TIniPropStorageManEh;


initialization
IniPropStorageMan := TIniPropStorageManEh.Create(nil);

IniPropStorageMan.IniFileName := 'MyIniFile.Ini';

SetDefaultPropStorageManager(IniPropStorageMan);

end.

--------------------------------



Введение в технологию MemTable + DataDriver.

Данная технология предназначена для обеспечения унифицированного способа загрузки табличной информации с сервера на клиент и последующей обработки этих данных на клиенте: редактирования, сортировки, фильтрации и выгрузки измененных данных обратно на сервер. Технология не включает драйверов доступа к серверу.


Технология представлена двумя основными компонента:

TMemTableEh – dataset, который держит все данные в памяти. Его можно рассматривать как массив записей.

Кроме того, он:

Поддерживает специальный интерфейс, позволяющий компоненту DBGridEh просматривать все данные, не перемещая активную запись.

Позволяет закачивать в себя данные из объекта TDataDriverEh (свойство DataDriver).

Позволяет выгружать изменения обратно в DataDriver, оперативно или отложено (в зависимости то свойства CachedUpdates).

Позволяет создавать мастер/дитэил отношения на клиенте (фильтруя записи) или на внешнем источнике (обновляя параметры [Params] и перезапрашивая данные c DetailDataDriver'а).

Позволяет сортировать данные, включая Calculated и Lookup поля.

Позволяет создавать и заполнять данные в design-time и сохранять данные в dfm файле формы.

Позволяет хранить записи в виде дерева. Каждая запись может иметь записи узлы/ветви и сама являться узлом другой родительской записи. Компонент TDBGridEh поддерживает функциональность отображения древовидной структуры этих записей.

Позволяет подключиться к внутреннему массиву другого компонента TMemTableEh (свойство ExternalMemData) и работать с его данными: сортировать, фильтровать, редактировать.

Имеет интерфейс для получения списка всех значений столбца, игнорируя локальный фильтр датасета. TDBGridEh использует это свойство для автоматического формирования списка в выпадающем DropDownBox’е фильтра.
TDataDriverEh – выполняет две задачи:

1. Поставляет данные (записи) в TMemTableEh.

2. Обрабатывает записи, измененные в TMemTableEh (записывает их в другой датасет, или вызывает события для обработки изменений в программе).
Кроме того, имеется несколько компонент наследуемых от TDataDriverEh. Это TSQLDataDriverEh, который содержит в себе пять SQL выражения и параметры для запроса данных, удаления записи, вставки записи, изменения записи, перезапроса записи. TSQLDataDriverEh посылает запросы не сервер, но умеет подготавливать параметры запроса и вызывает глобальное событие, в котором программист может передать SQL выражение на сервер. От TSQLDataDriverEh порождены несколько компонентов, которые сами могут посылать SQL выражения на сервер через соответствующие драйвера доступа к данным. Это TBDEDataDriverEh, TIBXDataDriverEh, TDBXDataDriverEh и TADODataDriverEh.

Компонент TMemTableEh.

Два режима работы компонента TMemTableEh.


Существует два режима работы компоненты TMemTableEh: ‘stand-alone’ и ‘with datadriver’.
stand-alone’ режим.

В режиме ‘stand-alone’ TMemTableEh работает как ни с чем несвязанный массив данных. Прежде чем работать с данными ‘stand-alone’ TMemTableEh’а необходимо создать внутренний массив данных. Для этого надо создать внешние поля (Fields) или field definitions в TMemTableEh и вызвать функцию CreateDataSet.

with datadriver’ режим.

Режим ‘with datadriver’ работает, когда присвоено свойство TMemTableEh.DataDriver. Внутренний массив данных создается автоматически при активизации MemTableEh’а. Структура полей предоставляется компонентом DataDriver.


ViewScroll


TMemTableEh поддерживает специальный интерфейс, позволяющий компоненту DBGridEh просматривать все данные, не перемещая активную запись. В дельнейшем будем называть такой режим работы ViewScroll.

Мастер/дитэил отношения.


Мастер/дитэил отношение – это режим работы двух датасетов при котором все видимые записи одного датасета (DetailDataSet) всегда соответствуют одной записи другого датасета (MasterDataSet). При движении по MasterDataSet’у DetailDataSet пересоздает или фильтрует записи так, чтобы они соответствовали записи MasterDataSet’а. Соответствия выставляются с помощью свойств MasterFields и KeyFields. DetailDataSet всегда выводит только те записи, у которых значения поля (полей) KeyFields равно значению поля (полей), заданное свойством MasterFields в мастер записи.

TMemTableEh позволяет создавать мастер/дитэил отношения на клиенте “mdsOnSelfEh” (фильтруя записи) или на провайдере “mdsOnProviderEh” (пересоздавая записи).

Для установки TMemTableEh в режим дитэил, используются следующие свойства: MasterSource, MasterFields, KeyFields, MasterDetailSide. Когда MasterDetailSide установлен в mdsOnSelfEh, TMemTableEh будет фильтровать записи по полям DetailFields основываясь на значении полей MasterSource[MasterFields]. Когда MasterDetailSide установлен в mdsOnProviderEh, TMemTableEh будет переоткрывать себя, присвоив параметры значениями полей из MasterSource[MasterFields]. При открытии TMemTableEh передает свои параметры DataDriver'у. В режиме mdsOnProviderEh свойства DetailFields не используются.

Третий режим работы - “mdsOnSelfAfterProviderEh” является комбинацией двух предыдущих. При первом переходе на запись в MasterDataSet’е DetailDataSet запрашивает записи у DataDriver'а, передавая ему параметры со значениями, присвоенными из MasterSource[MasterFields] и добавляет полученные данные в свой внутренний массив записей. При повторном переходе на ту же запись в MasterDataSet’е DetailDataSet будет всегда только фильтровать свои записи.




Поделитесь с Вашими друзьями:
1   ...   5   6   7   8   9   10   11   12   13




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница