SetSelection(Value: );
SetSelection(Value: Prognoz.Platform.Interop.Dimensions.);
Value. Selection of cube dimension elements.
The SetSelection method sets the specified selection for cube dimension elements.
To add elements to the selection, use the IMobilePublishCube.AddSelection method.
Executing the example requires that the repository contains a mobile application with the MA_PUB identifier. Add links to the Metabase, Mobile, Dimensions, Cubes system assemblies.
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;
// Get mobile application
Mobile := mb.ItemById("MA_PUB").Bind As IMobileApplication;
// Create a mobile application publisher
Publicator := Mobile.CreatePublicator;
// Get mobile application objects
MaPubObs := Publicator.Items;
For i := 0 To MaPubObs.Count - 1 Do
MaPubObj := MaPubObs.Item(i);
// Select cubes among the objects
If MaPubObj.Type = MobilePublishObjectType.Cube Then
PubObj := MaPubObj.PublishObject;
CubePubObj := PubObj As IMobilePublishCube;
// Display data on the cube in the console window
s := PubObj.Object.Name + " (" + PubObj.Object.Id + ")";
Debug.WriteLine("Cube: " + s).
Cube := PubObj.Object.Open(Null) As ICubeInstance;
DefDest := Cube.Destinations.DefaultDestination;
// Get empty selection
SelSet := DefDest.CreateDimSelectionSet;
// Select the first dimension elements
For j := 0 To SelSet.Count - 1 Do
DimSel := SelSet.Item(j);
DimSel.SelectElement(0, False);
End For;
// Set a new selection of elements
CubePubObj.SetSelection(SelSet);
// Define publishing path
PubObj.ExportPath := "C:\" + PubObj.Object.Id + ".zip";
// Publish cube
res := PubObj.Publish;
// Display result in the console window
If (res As integer) = 0 Then
Debug.WriteLine("Publishing was successful").
Debug.WriteLine(" Publishing path: " + PubObj.ExportPath);
Else
Debug.WriteLine("Error occurred on publishing").
End If;
End If;
End For;
End Sub UserProc;
Example execution result: the selection of dimensions elements for all cubes from the mobile application is changed; the cubes are published and the publishing results are displayed in the console window.
Executing the example requires that the repository contains a mobile application with the MA_PUB identifier.
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;
// Get mobile application
Mobile := mb.ItemById["MA_PUB"].Bind() As IMobileApplication;
// Create a mobile application publisher
Publicator := Mobile.CreatePublicator();
// Get mobile application objects
MaPubObs := Publicator.Items;
For i := 0 To MaPubObs.Count - 1 Do
MaPubObj := MaPubObs.Item[i];
// Select cubes among the objects
If MaPubObj.Type = MobilePublishObjectType.mpotCube Then
PubObj := MaPubObj.PublishObject;
CubePubObj := PubObj As IMobilePublishCube;
// Display data on the cube in the console window
s := PubObj.Object.Name + " (" + PubObj.Object.Id + ")";
System.Diagnostics.Debug.WriteLine("Cube: " + s).
Cube := PubObj.Object.Open(Null) As ICubeInstance;
DefDest := Cube.Destinations.DefaultDestination;
// Get empty selection
SelSet := DefDest.CreateDimSelectionSet();
// Select the first dimension elements
For j := 0 To SelSet.Count - 1 Do
DimSel := SelSet.Item[j];
DimSel.SelectElement(0, False);
End For;
// Set a new selection of elements
CubePubObj.SetSelection(SelSet);
// Define the publishing path
PubObj.ExportPath := "C:\" + PubObj.Object.Id + ".zip";
// Publish cube
res := PubObj.Publish(Null);
// Display the result in the console window
If (res As integer) = 0 Then
System.Diagnostics.Debug.WriteLine("Publishing was successful").
System.Diagnostics.Debug.WriteLine(" Publishing path: " + PubObj.ExportPath).
Else
System.Diagnostics.Debug.WriteLine("Error occurred on publishing").
End If;
End If;
End For;
End Sub;
Example execution result: the selection of dimensions elements for all cubes from the mobile application is changed; the cubes are published and the publishing results are displayed in the console window.
See also: