CopyScenarioData(DestScenarioKey: Integer;
SourceScenarioKey: Integer;
mvkTarget: MsVariableKind);
CopyScenarioData(DestScenarioKey: uinteger;
SourceScenarioKey: uinteger;
mvkTarget: Prognoz.Platform.Interop.Ms.MsVariableKind);
DestScenarioKey. Ключ сценария-приемника.
SourceScenarioKey. Ключ сценария-источника.
mvkTarget. Тип копируемых переменных.
Метод CopyScenarioData копирует данные по сценариям моделирования.
Для копирования данных по сценарию «Факт» используйте ключ «-1».
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «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.
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, (-1) As uinteger, MsVariableKind.mvkInput);
// Сохраняем задачу моделирования
MObj.Save();
End Sub;
См. также: