IPrxDataSource.DataSource

Синтаксис Fore

DataSource: IMatrixDataSource;

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

DataSource: Prognoz.Platform.Interop.Matrix.IMatrixDataSource;

Описание

Свойство DataSource определяет многомерную матрицу источника данных.

Пример Fore

Для выполнения примера предполагается наличие регламентного отчета с идентификатором «REGULAR_REPORT», в котором содержатся источники данных. В отчете добавьте таблицу, построенную на основе первого источника данных.

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

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    DtSources: IPrxDataSources;
    DtSource: IPrxDataSource;
    DimSS: IDimSelectionSet;
    Matr: IMatrix;
    MatrDS: IMatrixDataSource;
    Coord: IMatrixCoord;
    i: Integer;
Begin
    //Откроем отчет на редактирование
    MB := MetabaseClass.Active;
    MObj := MB.ItemById("REGULAR_REPORT").Edit;
    Report := MObj As IPrxReport;
    //Получим первый источник данных отчета
    DtSources := Report.DataSources;
    DtSource := DtSources.Item(0);
    //Определим многомерную матрицу источника
    MatrDS := DtSource.DataSource;
    //Заменим значение элемента матрицы, если источник данных можно редактировать
    If MatrDS.ReadOnly = False Then
        DimSS := MatrDS.CreateDimSelectionSet;
        Matr := MatrDS.Execute(DimSS);
        Coord := Matr.CreateCoord;
        For i := 0 To Matr.DimensionCount - 1 Do
            Coord.Item(i) := 0;
        End For;
        Matr.Item(Coord) := 10;
        //Сохраним матрицу с данными в источнике
        MatrDS.SaveData(Matr);
        //Сохраним регламентный отчет
        MObj.Save;
    End If;
End Sub UserProc;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Matrix;
Imports Prognoz.Platform.Interop.Dimensions;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    DtSources: IPrxDataSources;
    DtSource: IPrxDataSource;
    DimSS: IDimSelectionSet;
    Matr: IMatrix;
    MatrDS: IMatrixDataSource;
    Coord: IMatrixCoord;
    i: Integer;
Begin
    //Откроем отчет на редактирование
    MB := Params.Metabase;
    MObj := MB.ItemById["REGULAR_REPORT"].Edit();
    Report := MObj As IPrxReport;
    //Получим первый источник данных отчета
    DtSources := Report.DataSources;
    DtSource := DtSources.Item[0];
    //Определим многомерную матрицу источника
    MatrDS := DtSource.DataSource;
    //Заменим значение элемента матрицы, если источник данных можно редактировать
    If MatrDS.@ReadOnly = False Then
        DimSS := MatrDS.CreateDimSelectionSet();
        Matr := MatrDS.Execute(DimSS);
        Coord := Matr.CreateCoord();
        For i := 0 To Matr.DimensionCount - 1 Do
            Coord.Item[i] := 0;
        End For;
        Matr.Item[Coord] := 10;
        //Сохраним матрицу с данными в источнике
        MatrDS.SaveData(Matr);
        //Сохраним регламентный отчет
        MObj.Save();
    End If;  
End Sub;

См. также:

IPrxDataSource