IMsSelectionControl.GetStubSel

Синтаксис

GetStubSel(Stub: IVariableStub, [Full: Boolean = false,] [ParamValues: IMetabaseObjectParamValues = Null]): IDimSelectionSet;

Параметры

Stub. Источник данных;

Full. Способ получения измерений источника данных;

ParamValues. Коллекция значений параметров измерений.

Описание

Метод GetStubSel возвращает список измерений источника данных.

Комментарии

Возможные значения параметра Full:

Важно. Использование параметра со значением True может привести к снижению производительности и продолжительному выполнению метода в зависимости от количества элементов измерений.

Параметр ParamValues по умолчанию принимает значение Null.

При использовании метода для источника данных выполняется сортировка измерений: сначала возвращаются управляющие измерения, затем управляемые.

Для управления отметками управляющих и управляемых измерений:

  1. Задайте свойству IMsSelectionControl.IsActive значение True для управления параметрами измерений источника данных.

  2. Получите список измерений с помощью метода IMsSelectionControl.GetStubSel.

  3. Задайте отметку управляющего измерения с помощью класса DimSelectionSetFactory и методов IDimSelectionSetFactory.CreateDimSelectionSet, IDimSelectionSet.Add, IDimSelection.SelectElement.

  4. Примените отметку элементов управляющего измерения для изменения набора элементов управляемых измерений с помощью метода IMsSelectionControl.Apply.

После выполнения действий будет изменен набор элементов управляемых измерений за счёт отметки элементов управляющего измерения.

Пример

Для выполнения примера предполагается наличие в репозитории стандартного куба с идентификатором STD_CUBE, в котором содержатся управляющие измерения. Например, измерение А содержит параметр, а измерение B управляет измерением А с помощью настроенной связи, в которой задан атрибут, передающий значение параметру измерения А.

Добавьте ссылки на системные сборки: Cubes, Dimensions, Metabase, Ms.

Sub UserProc;
Var 
    
MB: IMetabase;
    Stub: IVariableStub;
    SelControl: IMsSelectionControl;
    SelSet, SelSetNew: IDimSelectionSet;
    Sel: IDimSelection;
    Factory: IDimSelectionSetFactory;   
Begin
    MB := MetabaseClass.Active;
    
// Получим стандартный куб
    Stub := MB.ItemById("STD_CUBE").Bind As IVariableStub;
    
// Создадим класс для управления параметрами измерений
    SelControl := New MsSelectionControl.Create;
    SelControl.IsActive := 
True;
    Debug.WriteLine(
"До применения отметки элементов управляющего измерения:");
    
// Получим список всех элементов измерений источника данных
    SelSet := SelControl.GetStubSel(Stub, True);
    
// Выведем в консоль наименование измерений и список элементов
    PrintSelectionSet(SelSet);
    
// Зададим отметку управляющего измерения
    Factory := New DimSelectionSetFactory.Create;
    SelSetNew := Factory.CreateDimSelectionSet;
    Sel := SelSetNew.Add(SelSet.Item(
0).Dimension);
    
// Отметим второй и четвертый элементы
    Sel.SelectElement(1False);
    Sel.SelectElement(
3False);
    
// Применим заданную отметку для управляемых измерений
    SelSetNew := SelControl.Apply(Stub, SelSetNew);
    Debug.WriteLine(
"После применения отметки элементов управляющего измерения:");
    
// Выведем в консоль наименование измерений и список элементов
    PrintSelectionSet(SelSetNew);   
End Sub UserProc;

Sub PrintSelectionSet(SelSet: IDimSelectionSet);
Var
    Copy: IDimSelectionSet;
    Sel: IDimSelection;
Begin
    Copy := SelSet.CreateCopy;
    
For Each Sel In Copy Do
        Sel.SelectAll;
        Debug.WriteLine(
"Измерение: " + Sel.Dimension.Name + "," + " Элементы: " + Sel.ToString);
    
End For;
    Debug.WriteLine(
"");
End Sub PrintSelectionSet;

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

См. также:

IMsSelectionControl