IMsProblemScenarios.CopyScenarioData

Синтаксис Fore

CopyScenarioData(DestScenarioKey: Integer;
                 SourceScenarioKey: Integer;
                 mvkTarget: MsVariableKind);

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

CopyScenarioData(DestScenarioKey: uinteger;
                 SourceScenarioKey: uinteger;
                 mvkTarget: Prognoz.Platform.Interop.Ms.MsVariableKind);

Параметры

DestScenarioKey. Ключ сценария-приемника.

SourceScenarioKey. Ключ сценария-источника.

mvkTarget. Тип копируемых переменных.

Описание

Метод CopyScenarioData копирует данные по сценариям моделирования.

Комментарии

Для копирования данных по сценарию «Факт» используйте ключ «-1».

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MODEL_SPACE», содержащего задачу моделирования с идентификатором «PROBLEM». Задача моделирования должна содержать несколько сценариев моделирования.

Добавьте ссылки на системные сборки «Metabase», «Ms».

Sub ProblemScenarioData;
Var
    MB: IMetabase;
    MsObj: IMetabaseObject;
    MObj: IMetabaseObject;
    Problem: IMsProblem;
    DestScen: IMsScenario;
    DestScenKey: Integer;
    ProbScen: IMsProblemScenarios;
Begin
    MB := MetabaseClass.Active;
    // Получаем контейнер моделирования
    MsObj := MB.ItemById("MODEL_SPACE").Bind;
    // Получаем задачу моделирования
    MObj := MB.ItemByIdNamespace("PROBLEM", MsObj.Key).Edit;
    Problem := MObj As IMsProblem;
    // Получаем сценарии задачи моделирования
    ProbScen := Problem.Scenarios;
    // Получаем 1-й сценарий в задаче моделирования 
    DestScen := ProbScen.Item(0);
    DestScenKey := (DestScen As IMetabaseObject).Key;
    // Копируем данные по входным переменным из сценария Факт в 1-й сценарий
    ProbScen.CopyScenarioData(DestScenKey, -1, MsVariableKind.Input);
    // Сохраняем задачу моделирования
    MObj.Save;
End Sub ProblemScenarioData;

Результат выполнения примера: данные входных переменных по сценарию «Факт» скопированы в первый сценарий задачи моделирования.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MsObj: IMetabaseObject;
    MObj: IMetabaseObject;
    Problem: IMsProblem;
    DestScen: IMsScenario;
    DestScenKey: uinteger;
    ProbScen: IMsProblemScenarios;
Begin
    MB := Params.Metabase;
    // Получаем контейнер моделирования
    MsObj := MB.ItemById["MODEL_SPACE"].Bind();
    // Получаем задачу моделирования
    MObj := MB.ItemByIdNamespace["PROBLEM", MsObj.Key].Edit();
    Problem := MObj As IMsProblem;
    // Получаем сценарии задачи моделирования
    ProbScen := Problem.Scenarios;
    // Получаем 1-й сценарий в задаче моделирования 
    DestScen := ProbScen.Item[0];
    DestScenKey := (DestScen As IMetabaseObject).Key;
    // Копируем данные по входным переменным из сценария Факт в 1-й сценарий
    ProbScen.CopyScenarioData(DestScenKey, (-1As uinteger, MsVariableKind.mvkInput);
    // Сохраняем задачу моделирования
    MObj.Save();
End Sub;

См. также:

IMsProblemScenarios