IMobilePublishRubricator.Filter

Синтаксис Fore

Filter: IMobilePublishRubricatorFilter;

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

Filter: Prognoz.Platform.Interop.Mobile.IMobilePublishRubricatorFilter;

Описание

Свойство Filter определяет параметры фильтрации атрибутов БД временных рядов.

Комментарии

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

Пример Fore

Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «MA_PUB», содержащего рабочую книгу БД временных рядов. В файловой системе должен содержаться файл «C:\TSDB_att.xml» с параметрами фильтрации атрибутов БД временных рядов, которая является источником данных для рабочей книги из мобильного приложения «MA_PUB».

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

Sub UserProc;
Var
    mb: IMetabase;
    Mobile: IMobileApplication;
    Publicator: IMobileApplicationPublicator;
    MaPubObs: IMobileApplicationPublishObjects;
    i, j: Integer;
    MaPubObj: IMobileApplicationPublishObject;
    PubObj: IMobilePublishObject;
    RubPubObj: IMobilePublishRubricator;
    Filter: IMobilePublishRubricatorFilter;
    FilterAttr: IMobilePublishRubricatorAttributeFilter;
    res: MobilePublishObjectResult;
    XmlDoc, xmlAttr: IXmlDomDocument3;
    el: IXmlDomElement;
Begin
    mb := MetabaseClass.Active;
    // Получаем мобильное приложение (МП)
    Mobile := mb.ItemById("MA_PUB").Bind As IMobileApplication;
    // Создаем публикатор МП
    Publicator := Mobile.CreatePublicator;
    // Получаем объекты МП
    MaPubObs := Publicator.Items;
    For i := 0 To MaPubObs.Count - 1 Do
        MaPubObj := MaPubObs.Item(i);
        // Выбираем среди объектов БД временных рядов
        If (MaPubObj.Type = MobilePublishObjectType.Rubricator) And (MaPubObj.IsValid) Then
            PubObj := MaPubObj.PublishObject;
            RubPubObj := PubObj As IMobilePublishRubricator;
            // Создаем пустой фильтр атрибутов
            Filter := New MobilePublishRubricatorFilter.Create;
            // Загружаем параметры фильтрации из файла
            XmlDoc := New DOMDocument60.Create;
            XmlDoc.load("C:\TSDB_att.xml");
            el := XmlDoc.selectSingleNode("Root"As IXmlDomElement;
            Filter.LoadFromXml(el);
            // Настраиваем параметры фильтрации
            For j := 0 To Filter.Count - 1 Do
                // Задаем параметры сохранения в формате XML
                xmlAttr := New DOMDocument60.Create;
                el := XmlDoc.createElement("Root");
                xmlAttr.appendChild(el);
                // Получаем параметры фильтрации атрибута БД временных рядов
                FilterAttr := Filter.Item(j);
                // Устанавливаем порядок сортировки по значениям атрибута KEY
                FilterAttr.ElementsSortDirection := SortDirection.Ascending;
                FilterAttr.SortType := ControlSortType.Custom;
                FilterAttr.SortAttribute := "KEY";
                // Сбрасываем отметку значений атрибута
                FilterAttr.Selection := Null;
                // Сохраняем параметры фильтрации атрибута
                FilterAttr.SaveToXml(el);
                xmlAttr.save("C:\TSDB_att_" + j.ToString + "(" + FilterAttr.Key.ToString + ").xml");
            End For;
            // Выгружаем измененные параметры фильтрации
            XmlDoc := New DOMDocument60.Create;
            el := XmlDoc.createElement("Root");
            XmlDoc.appendChild(el);
            Filter.SaveToXml(el);
            XmlDoc.save("C:\TSDB_att_chg.xml");
            // Устанавливаем параметры фильтрации атрибутов для БД временных рядов
            RubPubObj.Filter := Filter;
            // Указываем путь для публикации
            PubObj.ExportPath := "C:\" + PubObj.Object.Id + ".zip";
            // Публикуем рабочую БД временных рядов
            res := PubObj.Publish;
            // Выводим результат в окно консоли
            If (res As integer) = 0 Then
                Debug.WriteLine("Публикация выполнена успешно");
                Debug.WriteLine("    Путь публикации: " + PubObj.ExportPath);
            Else
                Debug.WriteLine("При публикации возникла ошибка");
            End If;
        End If;
    End For;
End Sub UserProc;

Результат выполнения примера: из файла «C:\TSDB_att.xml» будут загружены параметры фильтрации атрибутов БД временных рядов. Загруженные параметры будут изменены и установлены для БД временных рядов, которая является источником данных для рабочей книги из мобильного приложения «MA_PUB». Параметры фильтрации каждого атрибута и измененные параметры фильтрации всех атрибутов будут сохранены в формате XML.

Пример Fore.NET

Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «MA_PUB», содержащего рабочую книгу БД временных рядов. В файловой системе должен содержаться файл «C:\TSDB_att.xml» с параметрами фильтрации атрибутов БД временных рядов, которая является источником данных для рабочей книги из мобильного приложения «MA_PUB».

Imports Prognoz.Platform.Interop.Forms;
Imports Prognoz.Platform.Interop.Mobile;
Imports Prognoz.Platform.Interop.MsXml2;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    Mobile: IMobileApplication;
    Publicator: IMobileApplicationPublicator;
    MaPubObs: IMobileApplicationPublishObjects;
    i, j: Integer;
    MaPubObj: IMobileApplicationPublishObject;
    PubObj: IMobilePublishObject;
    RubPubObj: IMobilePublishRubricator;
    Filter: MobilePublishRubricatorFilter;
    FilterAttr: IMobilePublishRubricatorAttributeFilter;
    res: MobilePublishObjectResult;
    XmlDoc, xmlAttr: IXmlDomDocument3;
    el: IXmlDomElement;
Begin
    mb := Params.Metabase;
    // Получаем мобильное приложение (МП)
    Mobile := mb.ItemById["MA_PUB"].Bind() As IMobileApplication;
    // Создаем публикатор МП
    Publicator := Mobile.CreatePublicator();
    // Получаем объекты МП
    MaPubObs := Publicator.Items;
    For i := 0 To MaPubObs.Count - 1 Do
        MaPubObj := MaPubObs.Item[i];
        // Выбираем среди объектов БД временных рядов
        If (MaPubObj.Type = MobilePublishObjectType.mpotRubricator) And (MaPubObj.IsValid) Then
            PubObj := MaPubObj.PublishObject;
            RubPubObj := PubObj As IMobilePublishRubricator;
            // Создаем пустой фильтр атрибутов          
            Filter := New MobilePublishRubricatorFilter.Create();
            // Загружаем параметры фильтрации из файла
            XmlDoc := New DOMDocument60.Create();
            XmlDoc.load("C:\TSDB_att.xml");
            el := XmlDoc.selectSingleNode("Root"As IXmlDomElement;
            Filter.LoadFromXml(el);
            // Настраиваем параметры фильтрации
            For j := 0 To Filter.Count - 1 Do
                // Задаем параметры сохранения в формате XML
                xmlAttr := New DOMDocument60.Create();
                el := XmlDoc.createElement("Root");
                xmlAttr.appendChild(el);
                // Получаем параметры фильтрации атрибута БД временных рядов
                FilterAttr := Filter.Item[j];
                // Устанавливаем порядок сортировки по значениям атрибута KEY
                FilterAttr.ElementsSortDirection := SortDirection.sdAscending;
                FilterAttr.SortType := ControlSortType.cstCustom;
                FilterAttr.SortAttribute := "KEY";
                // Сбрасываем отметку значений атрибута
                FilterAttr.Selection := Null;
                // Сохраняем параметры фильтрации атрибута
                FilterAttr.SaveToXml(el);
                xmlAttr.save("C:\TSDB_att_" + j.ToString() + "(" + FilterAttr.Key.ToString() + ").xml");
            End For;
            // Выгружаем измененные параметры фильтрации
            XmlDoc := New DOMDocument60.Create();
            el := XmlDoc.createElement("Root");
            XmlDoc.appendChild(el);
            Filter.SaveToXml(el);
            XmlDoc.save("C:\TSDB_att_chg.xml");
            // Устанавливаем параметры фильтрации атрибутов для БД временных рядов
            RubPubObj.Filter := Filter;
            // Указываем путь для публикации
            PubObj.ExportPath := "C:\" + PubObj.Object.Id + ".zip";
            // Публикуем рабочую БД временных рядов
            res := PubObj.Publish(Null);
            // Выводим результат в окно консоли
            If (res As integer) = 0 Then
                System.Diagnostics.Debug.WriteLine("Публикация выполнена успешно");
                System.Diagnostics.Debug.WriteLine("    Путь публикации: " + PubObj.ExportPath);
            Else
                System.Diagnostics.Debug.WriteLine("При публикации возникла ошибка");
            End If;
        End If;
    End For;
End Sub;

Результат выполнения примера: из файла «C:\TSDB_att.xml» будут загружены параметры фильтрации атрибутов БД временных рядов. Загруженные параметры будут изменены и установлены для БД временных рядов, которая является источником данных для рабочей книги из мобильного приложения «MA_PUB». Параметры фильтрации каждого атрибута и измененные параметры фильтрации всех атрибутов будут сохранены в формате XML.

См. также:

IMobilePublishRubricator