IsEmptySelection: Boolean;
IsEmptySelection(): boolean;
Метод IsEmptySelection возвращает признак того, установлена ли отметка элементов измерений куба.
Возможные значения:
True. Отметка элементов отсутствует;
False. Отметка элементов установлена.
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «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;
Результат выполнения примера: в окно консоли выведена информация об отметке элементов измерений кубов, содержащихся в мобильном приложении и способе экспорта данных.
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «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;
Результат выполнения примера: в окно консоли выведена информация об отметке элементов измерений кубов, содержащихся в мобильном приложении и способе экспорта данных.
См. также: