IMobilePublishCube.AddSelection

Синтаксис Fore

AddSelection(Selection: );

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

AddSelection(Selection: Prognoz.Platform.Interop.Dimensions.);

Параметры

Selection. Отметка элементов измерений куба.

Описание

Метод AddSelection дополняет текущую отметку элементов измерений куба.

Комментарии

Для установки указанной отметки элементов используйте метод IMobilePublishCube.SetSelection.

Пример Fore

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

Sub UserProc;
Var
    mb: IMetabase;
    Mobile: IMobileApplication;
    Publicator: IMobileApplicationPublicator;
    MaPubObs: IMobileApplicationPublishObjects;
    i: Integer;
    MaPubObj: IMobileApplicationPublishObject;
    PubObj: IMobilePublishObject;
    CubePubObj: IMobilePublishCube;
    s: String;
    Cube: ICubeInstance;
    DefDest: ICubeInstanceDestination;
    SelSet: IDimSelectionSet;
    DimSel: IDimSelection;
    j: Integer;
    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.Cube Then
            PubObj := MaPubObj.PublishObject;
            CubePubObj := PubObj As IMobilePublishCube;
            // Выводим данные о кубе в окно консоли
            s := PubObj.Object.Name + " (" + PubObj.Object.Id + ")";
            Debug.WriteLine("Куб: " + s);
            Cube := PubObj.Object.Open(NullAs ICubeInstance;
            DefDest := Cube.Destinations.DefaultDestination;
            // Получаем пустую отметку
            SelSet := DefDest.CreateDimSelectionSet;
            // Отмечаем первые элементы измерений
            For j := 0 To SelSet.Count - 1 Do
                DimSel := SelSet.Item(j);
                DimSel.SelectElement(0False);
            End For;
            // Дополняем текущую отметку
            CubePubObj.AddSelection(SelSet);
            // Задаем путь публикации
            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.Cubes;
Imports Prognoz.Platform.Interop.Mobile;
Imports Prognoz.Platform.Interop.Dimensions;

[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    Mobile: IMobileApplication;
    Publicator: IMobileApplicationPublicator;
    MaPubObs: IMobileApplicationPublishObjects;
    i: Integer;
    MaPubObj: IMobileApplicationPublishObject;
    PubObj: IMobilePublishObject;
    CubePubObj: IMobilePublishCube;
    s: String;
    Cube: ICubeInstance;
    DefDest: ICubeInstanceDestination;
    SelSet: IDimSelectionSet;
    DimSel: IDimSelection;
    j: Integer;
    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.mpotCube Then
            PubObj := MaPubObj.PublishObject;
            CubePubObj := PubObj As IMobilePublishCube;
            // Выводим данные о кубе в окно консоли
            s := PubObj.Object.Name + " (" + PubObj.Object.Id + ")";
            System.Diagnostics.Debug.WriteLine("Куб: " + s);
            Cube := PubObj.Object.Open(NullAs ICubeInstance;
            DefDest := Cube.Destinations.DefaultDestination;
            // Получаем пустую отметку
            SelSet := DefDest.CreateDimSelectionSet();
            // Отмечаем первые элементы измерений
            For j := 0 To SelSet.Count - 1 Do
                DimSel := SelSet.Item[j];
                DimSel.SelectElement(0False);
            End For;
            // Дополняем текущую отметку
            CubePubObj.AddSelection(SelSet);
            // Задаем путь публикации
            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;

Результат выполнения примера: дополнена отметка элементов измерений для всех кубов, содержащихся в мобильном приложении; кубы опубликованы, результаты публикации выведены в окно консоли.

См. также:

IMobilePublishCube