SetSelection(Value: );
SetSelection(Value: Prognoz.Platform.Interop.Dimensions.);
Value. Отметка элементов измерений куба.
Метод SetSelection устанавливает указанную отметку для элементов измерений куба.
Для дополнения отметки элементов используйте метод IMobilePublishCube.AddSelection.
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «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(Null) As ICubeInstance;
DefDest := Cube.Destinations.DefaultDestination;
// Получаем пустую отметку
SelSet := DefDest.CreateDimSelectionSet;
// Отмечаем первые элементы измерений
For j := 0 To SelSet.Count - 1 Do
DimSel := SelSet.Item(j);
DimSel.SelectElement(0, False);
End For;
// Устанавливаем новую отметку элементов
CubePubObj.SetSelection(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;
Результат выполнения примера: изменена отметка элементов измерений для всех кубов, содержащихся в мобильном приложении; кубы опубликованы, результаты публикации выведены в окно консоли.
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «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(Null) As ICubeInstance;
DefDest := Cube.Destinations.DefaultDestination;
// Получаем пустую отметку
SelSet := DefDest.CreateDimSelectionSet();
// Отмечаем первые элементы измерений
For j := 0 To SelSet.Count - 1 Do
DimSel := SelSet.Item[j];
DimSel.SelectElement(0, False);
End For;
// Устанавливаем новую отметку элементов
CubePubObj.SetSelection(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;
Результат выполнения примера: изменена отметка элементов измерений для всех кубов, содержащихся в мобильном приложении; кубы опубликованы, результаты публикации выведены в окно консоли.
См. также: