DataSource: IMatrixDataSource;
Свойство DataSource определяет многомерную матрицу источника данных.
Для выполнения примера предполагается наличие регламентного отчета с идентификатором 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;
После выполнения примера в регламентном отчете будет содержаться заданное значение в таблице первого источника данных.
См. также: