IEaxDataAreaHierarchies.FindByDE

Синтаксис Fore

FindByDE(S: IDimSelection; Key: Integer; de: Integer): IEaxDataAreaTransformation;

Синтаксис Fore.NET

FindByDE(S: Prognoz.Platform.Interop.Dimensions.IDimSelection;
        Key: uinteger;
        de: uinteger): Prognoz.Platform.Interop.Express.IEaxDataAreaTransformation;

Параметры

S. Измерение, в котором находится альтернативная иерархия;

Key. Ключ измерения;

de. Элемент измерения.

Описание

Метод FindByDE осуществляет поиск формулы преобразования данных по индексу элемента измерения.

Комментарии

Если формула не будет найдена, то метод вернет значение Null.

Для поиска формулы преобразования данных по идентификатору элемента измерения используйте IEaxDataAreaHierarchies.Find.

Пример Fore

Для выполнения примера в репозитории необходимо наличие экспресс-отчета с идентификатором «EXPRESS». Отчет содержит таблицу.

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

Sub UserProc;
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    Hiers: IEaxDataAreaHierarchies;
    Slice: IEaxDataAreaSlice;
    DimSel: IDimSelection;
    Tr, TrDE: IEaxDataAreaTransformation;
Begin
    // Получим репозиторий
    MB := MetabaseClass.Active;
    // Получим экспресс-отчет
    Express := MB.ItemById("EXPRESS").Bind As IEaxAnalyzer;
    // Получим срез источника данных
    Slice := Express.DataArea.Slices.Item(0);
    //Получим отметку измерения
    DimSel := Slice.Selection.Item(3);
    Hiers := Express.DataArea.Hierarchies;
    Tr := Hiers.FindByDE(DimSel, Dimsel.Dimension.Key, DimSel.Element(3));
    TrDE := Hiers.Find(DimSel, Dimsel.Dimension.Key, "Moscow");
    If Tr = Null Then
        Debug.WriteLine("Альтернативная иерархия не содержит формулы преобразования данных"Else
        Debug.WriteLine("Формула преобразования данных = " + Tr.Expression.AsString);
    End If;
    If TrDE = Null Then
        Debug.WriteLine("Альтернативная иерархия не содержит формулы преобразования данных"Else
        Debug.WriteLine("Удалена формула преобразования данных = " + TrDE.Expression.AsString);
        Hiers.RemoveDependant(DimSel, Dimsel.Dimension.Key, "Moscow", TrDE);
    End If;
End Sub UserProc;

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

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    Hiers: IEaxDataAreaHierarchies;
    Slice: IEaxDataAreaSlice;
    DimSel: IDimSelection;
    Tr, TrDE: IEaxDataAreaTransformation;
Begin
    // Получим репозиторий
    MB := Params.Metabase;
    // Получим экспресс-отчет
    Express := MB.ItemById["EXPRESS"].Bind() As IEaxAnalyzer;
    // Получим срез источника данных
    Slice := Express.DataArea.Slices.Item[0];
    //Получим отметку измерения
    DimSel := Slice.Selection.Item[3];
    Hiers := Express.DataArea.Hierarchies;
    Tr := Hiers.FindByDE(DimSel, Dimsel.Dimension.Key, DimSel.Element[3]);
    TrDE := Hiers.Find(DimSel, Dimsel.Dimension.Key, "Moscow");
    If Tr = Null Then
        System.Diagnostics.Debug.WriteLine
        ("Альтернативная иерархия не содержит формулы преобразования данных"Else
        System.Diagnostics.Debug.WriteLine("Формула преобразования данных = " + Tr.Expression.AsString);
    End If;
    If TrDE = Null Then
        System.Diagnostics.Debug.WriteLine
        ("Альтернативная иерархия не содержит формулы преобразования данных"Else
        System.Diagnostics.Debug.WriteLine
        ("Удалена формула преобразования данных = " + TrDE.Expression.AsString);
        Hiers.RemoveDependant(DimSel, Dimsel.Dimension.Key, "Moscow", TrDE);
    End If;
End Sub;

См. также:

IEaxDataAreaHierarchies