IRubricatorInstance.CreateFiltrationMatrix

Синтаксис Fore

CreateFiltrationMatrix (Selections: IDimSelectionSet): IMatrixModel;

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

CreateFiltrationMatrix (Selections: Prognoz.Platform.Interop.Dimensions.IDimSelectionSet):
Prognoz.Platform.Interop.ForeSystem.IMatrixModel;

Параметры

Selections. Комплексная отметка справочника.

Описание

Метод CreateFiltrationMatrix создает матрицу отфильтрованных данных.

Комментарии

Данный метод позволяет получить информацию о наличии данных в базе данных временных рядов.

Пример Fore

Для выполнения примера в репозитории необходимо наличие базы данных временных рядов с идентификатором «TSDB».

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

Function CreateRubricatorSelectionSet(facts: IMetaDictionary): IDimSelectionSet;
    Var
        Result: IDimSelectionSet;
        Factory: IDimSelectionSetFactory;
        Attribute: IMetaAttribute;
    Begin
        Factory := New DimSelectionSetFactory.Create As IDImSelectionSetFactory;
        Result := Factory.CreateDimSelectionSet;
        For Each Attribute In Facts.Attributes Do
            If (Attribute.ValuesObject <> NullAnd (Attribute.Nullable = FalseThen
                Result.Add((Attribute.ValuesObject.Open(NullAs IDimInstance));
                Result.Item(Result.Count - 1).SelectAll;
            End If;
        End For;
        Return Result;
End Function CreateRubricatorSelectionSet;

Sub UserProc;
Var
    Metabase: IMetabase;
    Object: IMetabaseObjectDescriptor;
    Rubricator: IRubricatorInstance;
    Selections: IDimSelectionSet;
    FiltMat: IMatrix;
Begin
    // Получим репозиторий
    Metabase := MetabaseClass.Active;
    // Получим базу данных временных рядов
    Object := Metabase.ItemById("TSDB");
    Rubricator := Object.Open(NullAs IRubricatorInstance;
    // Получим матрицу отфильтрованных данных
    Selections := CreateRubricatorSelectionSet(Rubricator.Rubricator.Facts);
    FiltMat := Rubricator.CreateFiltrationMatrix(Selections) As IMatrix;
    // Выведем в окно консоли количество измерений в матрице
    Debug.WriteLine("Количество измерений в матрице: " + FiltMat.DimensionCount.ToString);
End Sub UserProc;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Matrix;
Imports Prognoz.Platform.Interop.Rds;

Shared Function CreateRubricatorSelectionSet(facts: IMetaDictionary): IDimSelectionSet;
    Var
        Result: IDimSelectionSet;
        Factory: DimSelectionSetFactory = New DimSelectionSetFactory();
        Attribute: IMetaAttribute;
    Begin
        Result := Factory.CreateDimSelectionSet();
        For Each Attribute In Facts.Attributes Do
            If (Attribute.ValuesObject <> NullAnd (Attribute.Nullable = FalseThen
                Result.Add((Attribute.ValuesObject.Open(NullAs IDimInstance));
                Result.Item[Result.Count - 1].SelectAll();
            End If;
        End For;
        Return Result;
End Function CreateRubricatorSelectionSet;

Public Shared Sub Main(Params: StartParams);
Var
    Metabase: IMetabase;
    Object: IMetabaseObjectDescriptor;
    Rubricator: IRubricatorInstance;
    Selections: IDimSelectionSet;
    FiltMat: IMatrix;
Begin
    // Получим репозиторий
    Metabase := Params.Metabase;
    // Получим базу данных временных рядов
    Object := Metabase.ItemById["TSDB"];
    Rubricator := Object.Open(NullAs IRubricatorInstance;
    // Получим матрицу отфильтрованных данных
    Selections := CreateRubricatorSelectionSet(Rubricator.Rubricator.Facts);
    FiltMat := Rubricator.CreateFiltrationMatrix(Selections) As IMatrix;
    // Выведем в окно консоли количество измерений в матрице
    System.Diagnostics.Debug.WriteLine("Количество измерений в матрице: " + FiltMat.DimensionCount.ToString());
End Sub;

См. также:

IRubricatorInstance