IMatrixDataSourceExecutorCache.Execute

Синтаксис

Execute(Dimensions: IDimSelectionSet): IMatrix;

Параметры

Dimensions. Отметка, в соответствии с которой, будет производиться расчет матрицы.

Описание

Метод Execute осуществляет проверку наличия данных в кэше и возвращает результирующую матрицу кэшированных данных.

Комментарии

При выполнении данного метода происходит проверка наличия в кэше данных, соответствующих указанной отметке. Отсутствующие данные будут извлечены с сервера и добавлены в кэш. Результатом работы метода Execute является ссылка на результирующую матрицу всех данных, помещенных в кэш. Если кэш пуст, либо дополнить его невозможно, то метод Execute отработает как метод IMatrixDataSourceExecutor.Execute.

Данный метод также учитывает установленные параметры  расчета результирующей матрицы.

Пример

Для выполнения примера предполагается наличие формы и расположенных на ней кнопок с наименованиями «Button1» и «Button2». В репозитории имеется куб с идентификатором «Cube_1». В качестве измерений данного куба выступают справочники с идентификаторами «Dim_1» и «Dim_2».

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

Class TESTForm: Form
    Button1: Button;
    Button2: Button;
    DimSS: IDimSelectionSet;
    MatrCache: IMatrixDataSourceExecutorCache;
    Matr: IMatrix;
    
    Sub TESTFormOnCreate(Sender: Object; Args: IEventArgs);
    Var
        MB: IMetabase;
        CubeInst: ICubeInstance;
        MatrDS: IMatrixDataSource;
        MatrExecutor: IMatrixDataSourceExecutor;
    Begin
        MB := MetabaseClass.Active;
        CubeInst := MB.ItemById("Cube_1").Open(NullAs ICubeInstance;
        MatrDS := CubeInst.Destinations.DefaultDestination As IMatrixDataSource;
        MatrExecutor := MatrDS.CreateExecutor;
        MatrCache := MatrExecutor.CreateCache;
        DimSS := MatrDS.CreateDimSelectionSet;
    End Sub TESTFormOnCreate;

    Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
    Begin
        DimSS.FindById("Dim_1")...; //Установка отметки по измерению Dim_1
        DimSS.FindById("Dim_2")...; //Установка отметки по измерению Dim_2
        Matr := MatrCache.Execute(DimSS);
    End Sub Button1OnClick;

    Sub Button2OnClick(Sender: Object; Args: IMouseEventArgs);
    Begin
        If MatrCache <> Null Then
            MatrCache.Flush;
        End If;
    End Sub Button2OnClick;

End Class TESTForm;

При создании формы будет открыт указанный куб. Куб будет представлен как многомерный источник данных. Для работы с данными куба будет создан кэш. При нажатии на кнопку «Button1» в соответствии с установленной отметкой производится расчет результирующей матрицы куба. При расчете будут использоваться кэшированные данные. В переменной «Matr» будет доступна матрица кэшированных данных. Кнопка «Button2» позволяет очистить кэш данных.

См. также:

IMatrixDataSourceExecutorCache