IMobilePublishRubricator.AddLanerToFactors

Синтаксис Fore

AddLanerToFactors(Laner: );

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

AddLanerToFactors(Laner: Prognoz.Platform.Interop.Laner.);

Параметры

Laner. Рабочая книга БД временных рядов.

Описание

Метод AddLanerToFactors устанавливает отметку для элементов, содержащихся в указанной рабочей книге.

Комментарии

Для снятия отметки со всех элементов используйте метод IMobilePublishRubricator.ClearFactors.

Пример Fore

Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «MA_PUB». Добавьте ссылки на следующие системные сборки: Metabase, Mobile, Express, Laner.

Sub UserProc;
Var
    mb: IMetabase;
    Mobile: IMobileApplication;
    Publicator: IMobileApplicationPublicator;
    MaPubObs: IMobileApplicationPublishObjects;
    i, j: Integer;
    MaPubObj, LanPubObj: IMobileApplicationPublishObject;
    PubObj: IMobilePublishObject;
    RubPubObj: IMobilePublishRubricator;
    Eax: IEaxAnalyzer;
    Laner: ILaner;
    res: MobilePublishObjectResult;
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 Then
            PubObj := MaPubObj.PublishObject;
            RubPubObj := PubObj As IMobilePublishRubricator;
            // Очищаем текущую отметку
            RubPubObj.ClearFactors;
            For j := 0 To MaPubObs.Count - 1 Do
                LanPubObj := MaPubObs.Item(j);
                // Выбираем среди объектов рабочие книги
                If LanPubObj.Type = MobilePublishObjectType.Laner Then
                    // Устанавливаем отметку для рядов из рабочей книги
                    Eax := LanPubObj.PublishObject.Object As IEaxAnalyzer;
                    Laner := Eax.Laner As ILaner;
                    RubPubObj.AddLanerToFactors(Laner);
                End If;
            End For;
            // Указываем путь для публикации
            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;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Laner;
Imports Prognoz.Platform.Interop.Mobile;

[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    Mobile: IMobileApplication;
    Publicator: IMobileApplicationPublicator;
    MaPubObs: IMobileApplicationPublishObjects;
    i, j: Integer;
    MaPubObj, LanPubObj: IMobileApplicationPublishObject;
    PubObj: IMobilePublishObject;
    RubPubObj: IMobilePublishRubricator;
    Eax: IEaxAnalyzer;
    Laner: LanerFactory;
    res: MobilePublishObjectResult;
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 Then
            PubObj := MaPubObj.PublishObject;
            RubPubObj := PubObj As IMobilePublishRubricator;
            // Очищаем текущую отметку
            RubPubObj.ClearFactors();
            For j := 0 To MaPubObs.Count - 1 Do
                LanPubObj := MaPubObs.Item[j];
                // Выбираем среди объектов рабочие книги
                If LanPubObj.Type = MobilePublishObjectType.mpotLaner Then
                    // Устанавливаем отметку для рядов из рабочей книги
                    Eax := LanPubObj.PublishObject.Object As IEaxAnalyzer;
                    Laner := Eax.Laner As LanerFactory;
                    RubPubObj.AddLanerToFactors(Laner);
                End If;
            End For;
            // Указываем путь для публикации
            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;

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

См. также:

IMobilePublishRubricator