Правила и порядок создания объектного документа
- Создайте стандартное приложение Delphi и сохраните проект.
- Установите в форму компонент ClientDataSet1.
- Выберите свойство FieldDefs компонента ClientDataSet1 (рис. 2).
Рис. 2 Выбор свойства FieldDefs
|
- Вызовите редактор определителя полей (рис. 3), выполнив щелчок мышкой по кнопке, расположенной справа от свойства FieldDefs (рис. 1).
Рис. 3 Вид редактора полей свойства FieldDefs
|
- Добавьте первое поле главного представления таблицы, выполнив команду Add New (Ins) в редакторе определителя полей.
- Измените в инспекторе объектов имя поля DataSet1Field1 на Facultet, в свойстве Data Type выберите значение ftString и в свойстве Size укажите размер = 25 (рис. 4 а, б).
Рис 4 а, б Изменение значений свойств в инспекторе объектов
|
- Добавьте второе поле главного представления таблицы, выполнив команду Add New (Ins) в редакторе полей. Данное поле будет являться полем связи с подчиненным представлением таблицы (Nested полем), поэтому в инспекторе объектов переименуйте его в Link и выберите значение fkDataSet в свойстве Data Type (рис. 5).
Рис 5 Установка значений свойств поля Link
|
- Для поля Link вызовите редактор вложенных полей, выполнив щелчок мышкой по кнопке свойства ChildDefs в инспекторе объектов (рис. 6).
Рис. 6 Вид редактора полей свойства FieldDefs и ChildDefs
|
- В редакторе дочерних полей добавьте первое поле вложенного представления таблицы, выполнив команду Add New (Ins) (рис. 7).
Рис. 7 Вид редактора полей свойства FieldDefs и ChildDefs после создания поля
|
- Измените в инспекторе объектов имя поля LinkField1 на Group, в свойстве Data Type выберите значение ftString и в свойстве Size укажите размер = 12 (рис. 8 а, б).
Рис 8 а, б Изменение значений свойств в инспекторе объектов
|
- После описания структуры документа необходимо создать DataSet для компонента ClientDataSet. Напомним, что для создания DataSet необходимо выбрать в форме компонент ClientDataSet1 и затем выполнить команду Create Data Set контекстного меню.
- Для передачи данных другим DataSet необходимо в редактор полей добавить поля все поля главного представления. Для этого достаточно выполнить двойной щелчок мышкой по компоненту ClientDataSet1 и затем выполнить команду Add All Fields контекстного меню.
- После создания DataSet сохраните созданную структуру в XML пакетном файле с именем Document, выполнив команду контекстного меню Save To Base XML table.
- Для того, что бы компонент ClientDataSet1 был связан с файлом документа необходимо подключить к нему созданный файл посредством свойства FileName.
- Для отображения вложенных свойств созданного объекта необходимо установить в форму второй компонент ClientDataSet2, который необходимо связать с компонентом ClientDataSet1 выбрав в свойстве DataSetField компонента ClientDataSet2 значение ClientDataSet1Link.
- После выполнения выше указанного действия необходимо добавить вложенные поля документа в ClientDataSet2, выполнив действия аналогичные описанным в пункте 12.
- Представление данных в элементах управления выполняется аналогично представлению данных в базах данных. Для представления данных достаточно установить в форму компоненты связи DataSource1 и DataSource2, которые соответственно связать с компонентами ClientDataSet1 и ClientDataSet2 посредством свойства DataSet. Далее установить в форму компоненты DBGrid1 и DBGrid2, которые соответственно связать с DataSource1 и DataSource2 посредством свойства DataSet. Для выполнения команд “Записать”, “Удалить”, “Переместить” и других достаточно установить в форму компоненты – навигаторы (DBNavigator1 и DBNavigator2) которые связать соответственно с компонентами DataSource1 и DataSource2.
- Особенностью модификации данных вложенных полей является необходимость выполнения модификации данных в главном представлении, т.е. выполнение команды редактирования данных главного свойства (поля) даже в случае отсутствия необходимости модификации иначе запись в файл не произойдет. В связи с этим фактом необходимо разработать собственный метод, напимер RD:
procedureTForm1.RD;
var
temp: string;
begin
temp:= ClientDataSet1Facultet.Value;
ClientDataSet1.Edit;
ClientDataSet1Facultet.Value:= '***';
ClientDataSet1.Post;
ClientDataSet1.Edit;
ClientDataSet1Facultet.Value:= temp;
ClientDataSet1.Post;
end;
|
который продекларировать в одном из разделов объявлений:
private
{ Private declarations }
procedure RD;
|
- Для обеспечения корректной работы приложения управления документом вышеуказанный метод необходимо вызывать в обработчиках событий AfterDelete и AfterPost компонента ClientDataSet2.
procedure TForm1.ClientDataSet2AfterDelete(DataSet: TDataSet);
begin
RD;
end;
|
procedure TForm1.ClientDataSet2AfterPost(DataSet: TDataSet);
begin
RD;
end;
|
Создание правильного XML документа (пакета)
Следует отметить тот факт, что созданный нами пакетный файл полностью работоспособный и понятный ClientDataSet он является не плавильным с точки зрения DTD – определителя типа документа и будет непонятен Интернет экспловеру. Устранить этот недостаток возможно с помощью утилиты XML Mapper входящей в поставку Delphi 6,7 версий.
Утилита содержит три окна. В левом окне открывается XML документ. В правом окне открывается XML пакет. В центральном окне представляются атрибуты полей которые можно редактировать перед преобразованием.
Создание правильного пакета сводится к преобразованию пакетного файла в XML документ, определению значений атрибутов полей и обратному преобразованию XML документа в XML пакет.
Определим порядок действий:
- В правом окне DataPacket вызовем команду OpenDataPacket и откроем исходный пакет.
- Затем выполним команду Select All контекстного меню.
- Далее выполним команду XML from Data Packet главного меню Create, которая вызовет окно описания структуры пакета, в котором подтверждаем выполнение командной кнопкой Create. После выполнения данной команды структура пакета отобразится в левом окне утилиты.
- Далее удаляем из правого окна исходный документ, выполнив команду Clear контекстного меню.
- При необходимости структуру XML документа можно сохранить выполнив команду Save меню File.
- Создание XML пакета из XML документа выполняется в обратной последовательности.
- Первым действием выполняем команду Select ALL контекстного меню.
- Далее в окне Node Properties определяет значение атрибутов для каждого узла и поля. Обратите внимание на тот факт, что для узла Link (в нашем случае) необходимо выбрать значение Nested = true.
- После определения значений атрибутов всех полей выполняем команду Data Packet from XML меню Create, которая преобразует XML документ в XML пакет.
- После выполнения команды структура правильного XML пакета будет представлена в правом окне.
- Последним действием является сохранение файла пакета путем выполнения команды Save data Packet контекстного меню.
После выполнения указанных действий пакетный файл будет понятен как Интернет экспловеру, так и ClientDataSet.
Дата добавления: 2015-09-01; просмотров: 71 | Нарушение авторских прав
mybiblioteka.su - 2015-2024 год. (0.009 сек.)