OptimisticScenario: IMsScenario;
OptimisticScenario: Prognoz.Platform.Interop.Ms.IMsScenario;
Свойство OptimisticScenario определяет сценарий оптимизационной задачи.
Для задания сценария целевой задачи и сценария для траектории целевой задачи используйте свойства IMsTargetProblem.TargetScenario и IMsTargetProblem.TrajectoryScenario.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MS_DEFAULT», содержащего задачу моделирования с идентификатором «TARGET_PROBLEM». Данная задача должна быть предназначена для веб-приложения и содержать целевую функцию.
Добавьте ссылки на системные сборки: Metabase, Express.
Sub UserProc;
Var
mb: IMetabase;
MsObj: IMetabaseObject;
Ms: IMsModelSpace;
ScenarioTree: IMsScenarioTreeEntries;
OptimisticScenario: IMsScenarioTreeElement;
Scenario: IMsScenario;
Problem: IMsProblem;
TargetProblem: IMsTargetProblem;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем контейнер моделирования
MsObj := mb.ItemById("MS_DEFAULT").Edit;
Ms := MsObj As IMsModelSpace;
// Получаем сценарии
ScenarioTree := Ms.ScenarioTree;
// Добавляем новый сценарий
OptimisticScenario := ScenarioTree.AddScenario(False, True);
OptimisticScenario.Name := "Сценарий оптимизационной задачи";
Scenario := OptimisticScenario.Scenario;
// Получаем целевую задачу
Problem := mb.ItemByIdNamespace("TARGET_PROBLEM", MsObj.Key).Edit As IMsProblem;
TargetProblem := Problem.AdditionalDetails.Item(0) As IMsTargetProblem;
// Задаем сценарий оптимизационной задачи
Problem.Scenarios.AddScenario(Scenario);
TargetProblem.OptimisticScenario := Scenario;
// Сохраняем изменения
(Problem As IMetabaseObject).Save;
MsObj.Save;
End Sub UserProc;
В результате выполнения примера для задачи моделирования будет задан сценарий оптимизационной задачи.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
MsObj: IMetabaseObject;
Ms: IMsModelSpace;
ScenarioTree: IMsScenarioTreeEntries;
OptimisticScenario: IMsScenarioTreeElement;
Scenario: IMsScenario;
Problem: IMsProblem;
TargetProblem: IMsTargetProblem;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем контейнер моделирования
MsObj := mb.ItemById["MS_DEFAULT"].Edit();
Ms := MsObj As IMsModelSpace;
// Получаем сценарии
ScenarioTree := Ms.ScenarioTree;
// Добавляем новый сценарий
OptimisticScenario := ScenarioTree.AddScenario(False, True);
OptimisticScenario.Name := "Сценарий оптимизационной задачи";
Scenario := OptimisticScenario.Scenario;
// Получаем целевую задачу
Problem := mb.ItemByIdNamespace["TARGET_PROBLEM", MsObj.Key].Edit() As IMsProblem;
TargetProblem := Problem.AdditionalDetails.Item[0] As IMsTargetProblem;
// Задаем сценарий оптимизационной задачи
Problem.Scenarios.AddScenario(Scenario);
TargetProblem.OptimisticScenario := Scenario;
// Сохраняем изменения
(Problem As IMetabaseObject).Save();
MsObj.Save();
End Sub;
См. также: