IMetabaseCustomObjectReader.ReadToXML

Синтаксис Fore

ReadToXML(Var Xml: Variant);

Синтаксис Fore.NET

ReadToXML(Var Xml: object);

Параметры

Xml. XML-объект, в который будут считаны данные из объекта.

Описание

Метод ReadToXML считывает данные из объекта пользовательского класса в XML-формате и загружает их в указанную переменную.

Комментарии

Перед выполнением метода ReadToStream необходимо вызвать метод Load для чтения данных из базы репозитория в текущий объект в памяти ПК.

Пример Fore

Для выполнения примера предполагается наличие в репозитории объекта пользовательского класса с идентификатором «OBJ_CUSTOM».

Добавьте ссылки на системные сборки «Metabase», «Xml».

Sub UserProc;
Var
    Mb: IMetabase;
    Object: IMetabaseObject;
    CustomObject: IMetabaseCustomObject;
    Writer: IMetabaseCustomObjectWriter;
    Reader: IMetabaseCustomObjectReader;
    XmlVar: Variant;
    xmlDE: IXmlDomElement;
    XmlDoc: FreeThreadedDOMDocument60;
Begin
    Mb := MetabaseClass.Active;
    Object := Mb.ItemById("OBJ_CUSTOM").Edit;
    CustomObject := Object As IMetabaseCustomObject;
    XmlDoc := New FreeThreadedDOMDocument60.Create;
    XmlDoc.loadXML("<nodes> <node1>ITEM1=3</node1> <node2>ITEM2=0</node2> </nodes>");
    Writer := CustomObject.CreateWriter;
    Writer.WriteFromXML(XmlDoc);
    Writer.Save;
    Reader := CustomObject.CreateReader;
    Reader.Load;
    Reader.ReadToXML(XmlVar);
    XmlDoc := XmlVar As FreeThreadedDOMDocument60;
    xmlDE := XmlDoc.selectSingleNode("nodes"As IXmlDomElement;
    Debug.WriteLine(xmlDE.xml);
    Object.Save;
End Sub UserProc;

После выполнения примера в объект будут записаны пользовательские данные в формате XML, затем эти данные будут прочитаны и выведены в окно консоли.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.MsXml2;

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    Obj: IMetabaseObject;
    CustomObject: IMetabaseCustomObject;
    Writer: IMetabaseCustomObjectWriter;
    Reader: IMetabaseCustomObjectReader;
    XmlVar: object;
    xmlDE: IXmlDomElement;
    XmlDoc: FreeThreadedDOMDocument60;
Begin
    Mb := Params.Metabase;
    Obj := Mb.ItemById["OBJ_CUSTOM"].Edit();
    CustomObject := Obj As IMetabaseCustomObject;
    XmlDoc := New FreeThreadedDOMDocument60.Create();
    XmlDoc.loadXML("<nodes> <node1>ITEM1=3</node1> <node2>ITEM2=0</node2> </nodes>");
    Writer := CustomObject.CreateWriter();
    Writer.WriteFromXML(XmlDoc);
    Writer.Save();
    Reader := CustomObject.CreateReader();
    Reader.Load();
    Reader.ReadToXML(Var XmlVar);
    XmlDoc := XmlVar As FreeThreadedDOMDocument60;
    xmlDE := XmlDoc.selectSingleNode("nodes"As IXmlDomElement;
    System.Diagnostics.Debug.WriteLine(xmlDE.xml);
    Obj.Save();
End Sub;

См. также:

IMetabaseCustomObjectReader