Рассмотрим пример выбора источника данных регламентного отчета.
Для выполнения примера предполагается наличие в репозитории регламентного отчета с идентификатором «REPORT_INTRO» и стандартного куба с идентификатором «CUBE_SEP».
Для выполнения примера добавьте ссылки на системные сборки Metabase, Report, Cubes, Matrix.
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObject;
Cube: ICubeInstance;
Report: IPrxReport;
MatrDS: IMatrixDataSource;
DtSources: IPrxDataSources;
DtSource: IPrxDataSource;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("REPORT_INTRO").Edit;
// Выбор источника данных отчета:
Cube := MB.ItemById("CUBE_SEP").Open(Null) As ICubeInstance;
Report := MObj As IPrxReport;
MatrDS := Cube.Destinations.DefaultDestination As IMatrixDataSource;
DtSources := Report.DataSources;
DtSource := DtSources.Add(MatrDS);
MObj.Save;
End Sub UserProc;
В результате выполнения примера в качестве источника данных регламентного отчета будет добавлен указанный куб.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Matrix;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MObj: IMetabaseObject;
Cube: ICubeInstance;
Report: IPrxReport;
MatrDS: IMatrixDataSource;
DtSources: IPrxDataSources;
DtSource: IPrxDataSource;
Begin
MB := Params.Metabase;
MObj := MB.ItemById["REPORT_INTRO"].Edit();
// Выбор источника данных отчета:
Cube := MB.ItemById["CUBE_SEP"].Open(Null) As ICubeInstance;
Report := MObj As IPrxReport;
MatrDS := Cube.Destinations.DefaultDestination As IMatrixDataSource;
DtSources := Report.DataSources;
DtSource := DtSources.Add(MatrDS);
MObj.Save();
End Sub;
См. также:
Общие принципы программирования с использованием сборки Report