AddSlice(Value: IMsFormulaTransformSlice): Integer;
AddSlice(Value: Prognoz.Platform.Interop.Ms.IMsFormulaTransformSlice): integer;
Value. Срез переменной.
Метод AddSlice добавляет указанный срез переменной в отчет.
В результате выполнения метод AddSlice возвращает индекс добавленного среза в отчете.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MS», содержащего целевую задачу с идентификатором «TARGET_PROBLEM». Также в репозитории предполагается наличие экспресс-отчета с идентификатором «MODELLING_REPORT».
Добавьте ссылки на системную сборку: Express, Matrix, Metabase, Ms, Pivot.
Sub UserProc;
Var
Mb: IMetabase;
MsObj: IMetabaseObject;
Ms: IMsModelSpace;
Problem: IMsProblem;
TargetProblem: IMsTargetProblem;
Transform: IMsFormulaTransform;
Sleces: IMsFormulaTransformSlices;
VarReport: IMsProblemVariablesReport;
DataSource: IMatrixDataSource;
Eax: IEaxAnalyzer;
Begin
// Получаем текущий репозиторий
Mb := MetabaseClass.Active;
// Получаем контейнер моделирования
MsObj := Mb.ItemById("MS").Bind;
Ms := MsObj As IMsModelSpace;
// Получаем целевую задачу
Problem := Mb.ItemByIdNamespace("TARGET_PROBLEM", MsObj.Key).Bind As IMsProblem;
// Получаем моделируемую переменную в целевой задаче
TargetProblem := Problem.AdditionalDetails.Item(0) As IMsTargetProblem;
Transform := TargetProblem.Model.Transform;
Sleces := Transform.Outputs.Item(0).Slices;
VarReport := Problem.CreateVariablesReport;
// Указываем, что включаем моделируемую переменную в отчет
VarReport.AddSlice(Sleces.Item(0));
// Указываем используемый контейнер моделирования
VarReport.SetModelSpace(Ms);
// Создаем отчет по переменным
DataSource := VarReport.CreateDataSource;
Eax := Mb.ItemById("MODELLING_REPORT").Edit As IEaxAnalyzer;
Eax.OpenMatrixDataSource(DataSource);
VarReport.SetupSelection(Eax.Pivot.Selection);
// Сохраняем отчет
(Eax As IMetabaseObject).Save;
End Sub UserProc;
В результате выполнения примера в экспресс-отчет будет сохранен отчет по переменным, содержащий данные моделируемой переменной целевой задачи.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Matrix;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Pivot;
…
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
MsObj: IMetabaseObject;
Ms: IMsModelSpace;
Problem: IMsProblem;
TargetProblem: IMsTargetProblem;
Transform: IMsFormulaTransform;
Sleces: IMsFormulaTransformSlices;
VarReport: IMsProblemVariablesReport;
DataSource: IMatrixDataSource;
Eax: IEaxAnalyzer;
Begin
// Получаем текущий репозиторий
Mb := Params.Metabase;
// Получаем контейнер моделирования
MsObj := Mb.ItemById["MS"].Bind();
Ms := MsObj As IMsModelSpace;
// Получаем целевую задачу
Problem := Mb.ItemByIdNamespace["TARGET_PROBLEM", MsObj.Key].Bind() As IMsProblem;
// Получаем моделируемую переменную в целевой задаче
TargetProblem := Problem.AdditionalDetails.Item[0] As IMsTargetProblem;
Transform := TargetProblem.Model.Transform;
Sleces := Transform.Outputs.Item[0].Slices;
VarReport := Problem.CreateVariablesReport();
// Указываем, что включаем моделируемую переменную в отчет
VarReport.AddSlice(Sleces.Item[0]);
// Указываем используемый контейнер моделирования
VarReport.SetModelSpace(Ms);
// Создаем отчет по переменным
DataSource := VarReport.CreateDataSource();
Eax := Mb.ItemById["MODELLING_REPORT"].Edit() As IEaxAnalyzer;
Eax.OpenMatrixDataSource(DataSource);
VarReport.SetupSelection(Eax.Pivot.Selection);
// Сохраняем отчет
(Eax As IMetabaseObject).Save();
End Sub;
См. также: