IDimElementsIndent.IndentName

Синтаксис

IndentName(Element: Integer; Indent: Integer): String;

Параметры

Element - элемент составного измерения.

Indent - индекс измерения, при изменении которого было сформировано наименование элемента Element.

Описание

Свойство IndentName возвращает наименование элемента из измерения-источника, использованного при формировании наименования элемента Element.

Примечание. Формирование наименования элемента осуществляется путем изменения наименования предыдущего элемента этого же уровня. Если на данном уровне элементы закончились, то изменяется наименование последнего элемента предыдущего уровня.

Примечание. Если составной справочник содержит только один источник, то при формировании наименований элементов наименование самого источника не используется.

Пример

Для выполнения примера предполагается наличие в репозитории виртуального куба с идентификатором «Virt_Cube». Источниками данных для виртуального куба являются два куба с наименованиями «Куб 1» и «Куб 2». Первый куб имеет три измерения, второй - два измерения. В каждом измерении элементы имеют числовое наименование от «1» до «n».

Sub Main;

Var

MB: IMetabase;

Cube: IVirtualCube;

Sources: IVirtualCubeSources;

CDim: ICompoundDimension;

CSource: ICompoundDimensionSource;

CSel, Sel: IDimSelectionSet;

FixInfo: ICubeDimensionFixInfo;

Fix: ICubeDimensionFix;

Params: IMetabaseObjectParamValues;

CDimInst: ICompoundDimensionInstance;

Elements: IDimElements;

ElementsInd: IDimElementsIndent;

Element: Integer;

Begin

MB := MetabaseClass.Active;

Cube := MB.ItemById("Virt_Cube").Bind As IVirtualCube;

Sources := Cube.Sources;

//Формирование отметки для открытия составного измерения

CDim := Cube.FactDimension As ICompoundDimension;

Sel := (New DimSelectionSetFactory.Create).CreateDimSelectionSet;

CSel := (New DimSelectionSetFactory.Create).CreateDimSelectionSet;

For Each CSource In CDim.Sources Do

Sel.Clear;

//Формирование отметки в соответствии с отметкой фиксированных измерений в источниках

FixInfo := Sources.FindByKey(CSource.Key).FixInfo;

For Each Fix In FixInfo Do

If Fix.Selection.SelectedCount <> 0 Then

Fix.Selection.CopyTo(Sel.Add(Fix.Instance), True);

End If;

End For;

CSel.AddCompound(CSource.Key, Sel);

End For;

//Открытие составного измерения

Params := (CDim As IMetabaseObject).Params.CreateEmptyValues;

Params.FindById("SELECTIONS").Value := CSel;

CDimInst := (CDim As IMetabaseObject).Open(Params) As ICompoundDimensionInstance;

//Получение элементов составного измерения

Elements := (CDimInst As IDimInstance).Elements;

ElementsInd := Elements As IDimElementsIndent;

//Вывод информации о формировании наименований элементов

For Each Element In Elements.Elements Do

Debug.Write(Elements.Name(Element) + ": ");

Debug.Write("Измерение: " + ElementsInd.IndentLow(Element).ToString + " ");

Debug.WriteLine("Использованный элемент: " + ElementsInd.IndentName(Element, ElementsInd.IndentLow(Element)));

End For;

End Sub Main;

При выполнении примера для открытия составного измерения виртуального куба формируется отметка на основании отметки всех зафиксированных измерений всех источников данных куба. В консоль среды разработки будут выведены наименования элементов составного справочника и информация об их формировании.

Куб 1 - 1 - 1 - 1: Измерение: 0 Использованный элемент: Куб 1

Куб 1 - 1 - 1 - 2: Измерение: 3 Использованный элемент: 2

Куб 1 - 1 - 2 - 1: Измерение: 2 Использованный элемент: 2

Куб 1 - 1 - 2 - 2: Измерение: 3 Использованный элемент: 2

Куб 1 - 2 - 1 - 1: Измерение: 1 Использованный элемент: 2

Куб 1 - 2 - 1 - 2: Измерение: 3 Использованный элемент: 2

Куб 1 - 2 - 2 - 1: Измерение: 2 Использованный элемент: 2

Куб 1 - 2 - 2 - 2: Измерение: 3 Использованный элемент: 2

Куб 2 - 1 - 1: Измерение: 0 Использованный элемент: Куб 2

Куб 2 - 1 - 2: Измерение: 2 Использованный элемент: 2

Куб 2 - 1 - 3: Измерение: 2 Использованный элемент: 3

Куб 2 - 2 - 1: Измерение: 1 Использованный элемент: 2

Куб 2 - 2 - 2: Измерение: 2 Использованный элемент: 2

Куб 2 - 2 - 3: Измерение: 2 Использованный элемент: 3

Данную информацию можно интерпретировать примерно следующим образом:

См. также:

IDimElementsIndent