Ниже приведен пример просмотра информации о структуре вычисляемого куба: выводится информация об источниках, измерениях источников и собственных измерениях вычисляемого куба. Вывод производится в консоль среды разработки. Для выполнения примера предполагается наличие в репозитории вычисляемого куба с идентификатором «CalculatedCube». Добавьте ссылки на системные сборки: Cubes, Dimensions, Metabase.
Sub UserProc;
Var
MB: IMetabase;
Cube: ICalculatedCube;
CubeSource: ICalculatedCubeSource;
CubeDim: ICalculatedCubeDimension;
MDesc: IMetabaseObjectDescriptor;
Begin
MB := MetabaseClass.Active;
Cube := MB.ItemById("CalculatedCube").Bind As ICalculatedCube;
//Информация об источниках вычисляемого куба и их измерениях
For Each CubeSource In Cube.Sources Do
Debug.WriteLine("Источник: " + CubeSource.Name + '(' + CubeSource.Id + ')');
Debug.WriteLine("Измерения источника:");
Debug.Indent;
For Each CubeDim In CubeSource.Dimensions Do
MDesc := CubeDim.Dimension As IMetabaseObjectDescriptor;
Debug.WriteLine(MetabaseClass.CommonClassName(MDesc.ClassId As MetabaseObjectClass) + ": " + MDesc.Name + '(' + MDesc.Id + ')');
End For;
Debug.Unindent;
End For;
//Информация о собственных измерениях вычисляемого куба
Debug.WriteLine("Измерения вычисляемого куба:");
For Each CubeDim In Cube.Dimensions Do
MDesc := CubeDim.Dimension As IMetabaseObjectDescriptor;
Debug.Indent;
Debug.Write(MetabaseClass.CommonClassName(MDesc.ClassId As MetabaseObjectClass) + ": " + MDesc.Name + '(' + MDesc.Id + ". ");
If CubeDim.Fixed Then
Debug.WriteLine("Фиксированное");
Else
Debug.WriteLine("Не фиксированное");
End If;
Debug.Unindent;
End For;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MBClass: IMetabaseClass = New MetabaseClassClass();
Cube: ICalculatedCube;
CubeSource: ICalculatedCubeSource;
CubeDim: ICalculatedCubeDimension;
MDesc: IMetabaseObjectDescriptor;
Begin
MB := Params.Metabase;
Cube := MB.ItemById["CalculatedCube"].Bind() As ICalculatedCube;
//Информация об источниках вычисляемого куба и их измерениях
For Each CubeSource In Cube.Sources Do
System.Diagnostics.Debug.WriteLine("Источник: " + CubeSource.Name + '(' + CubeSource.Id + ')');
System.Diagnostics.Debug.WriteLine("Измерения источника:");
System.Diagnostics.Debug.Indent();
For Each CubeDim In CubeSource.Dimensions Do
MDesc := CubeDim.Dimension As IMetabaseObjectDescriptor;
System.Diagnostics.Debug.WriteLine(MBClass.CommonClassName[MDesc.ClassId As MetabaseObjectClass, NameCasePlural.ncNominative] + ": " + MDesc.Name + '(' + MDesc.Id + ')');
End For;
System.Diagnostics.Debug.Unindent();
End For;
//Информация о собственных измерениях вычисляемого куба
System.Diagnostics.Debug.WriteLine("Измерения вычисляемого куба:");
For Each CubeDim In Cube.Dimensions Do
MDesc := CubeDim.Dimension As IMetabaseObjectDescriptor;
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.Write(MBClass.CommonClassName[MDesc.ClassId As MetabaseObjectClass, NameCasePlural.ncNominative] + ": " + MDesc.Name + '(' + MDesc.Id + ". ");
If CubeDim.Fixed Then
System.Diagnostics.Debug.WriteLine("Фиксированное");
Else
System.Diagnostics.Debug.WriteLine("Не фиксированное");
End If;
System.Diagnostics.Debug.Unindent();
End For;
End Sub;
См. также: