IMobilePublishCube.IsEmptySelection

Синтаксис Fore

IsEmptySelection: Boolean;

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

IsEmptySelection(): boolean;

Описание

Метод IsEmptySelection возвращает признак того, установлена ли отметка элементов измерений куба.

Комментарии

Возможные значения:

Пример Fore

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

Sub Main;
Var
    mb: IMetabase;
    Mobile: IMobileApplication;
    Publicator: IMobileApplicationPublicator;
    MaPubObs: IMobileApplicationPublishObjects;
    i: Integer;
    MaPubObj: IMobileApplicationPublishObject;
    PubObj: IMobilePublishObject;
    CubePubObj: IMobilePublishCube;
    s: String;
    SelSet: IDimSelectionSet;
    DimSel: IDimSelection;
    j: Integer;
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);
            //Определяем способ экспорта данных
            Debug.Write("Способ экспорта данных: ");
            CubePubObj.PortionalLoad := True;
            Debug.WriteLine("запрашивает все данные блоками по 1 млн. элементов");
            //Проверяем, задана ли отметка
            If CubePubObj.IsEmptySelection Then
                // Если отметка не задана
                // Выделяем все элементы
                CubePubObj.SelectAll;
            Else
                //Если отметка задана
                //Загружаем отметку и выводим её в окно консоли
                SelSet := CubePubObj.LoadSelection;
                For j := 0 To SelSet.Count - 1 Do
                    DimSel := SelSet.Item(j);
                    s := DimSel.Dimension.Name;
                    Debug.WriteLine("- измерение:" + s);
                    Debug.WriteLine("-отметка:");
                    Debug.Indent;
                    Debug.WriteLine(DimSel.ToString);
                    Debug.Unindent;
                    Debug.WriteLine("");
                End For;
            End If;
        End If;
    End For;
End Sub Main;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Mobile;
Imports Prognoz.Platform.Interop.Dimensions;

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;
    SelSet: IDimSelectionSet;
    DimSel: IDimSelection;
    j: Integer;
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);
            //Определяем способ экспорта данных
            System.Diagnostics.Debug.Write("Способ экспорта данных: ");
            CubePubObj.PortionalLoad := True;
            System.Diagnostics.Debug.WriteLine("запрашивает все данные блоками по 1 млн. элементов");
            //Проверяем, задана ли отметка
            If CubePubObj.IsEmptySelection() Then
                // Если отметка не задана
                // Выделяем все элементы
                CubePubObj.SelectAll();
            Else
                //Если отметка задана
                //Загружаем отметку и выводим её в окно консоли
                SelSet := CubePubObj.LoadSelection();
                For j := 0 To SelSet.Count - 1 Do
                    DimSel := SelSet.Item[j];
                    s := DimSel.Dimension.Name;
                    System.Diagnostics.Debug.WriteLine("- измерение:" + s);
                    System.Diagnostics.Debug.WriteLine("-отметка:");
                    System.Diagnostics.Debug.Indent();
                    System.Diagnostics.Debug.WriteLine(DimSel.ToString("",  ",",  False));
                    System.Diagnostics.Debug.Unindent();
                    System.Diagnostics.Debug.WriteLine("");
                End For;
            End If;
        End If;
    End For;
End Sub;

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

См. также:

IMobilePublishCube