FindByKey(InrernalKey: Integer): IMsScenario;
InrernalKey. Внутренний ключ сценария моделирования.
Метод FindByInternalKey осуществляет поиск сценария моделирования по внутреннему ключу.
Для получения внутреннего ключа сценария моделирования используйте свойство IMsScenario.InternalKey.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MODEL_SPACE», содержащего задачу моделирования с идентификатором «PROBLEM». Контейнер моделирования должен содержать несколько сценариев моделирования.
Добавьте ссылки на системные сборки «Metabase», «Ms».
Sub FindByInternalKey;
Var
MB: IMetabase;
MsObj: IMetabaseObject;
MObj: IMetabaseObject;
Ms: IMsModelSpace;
Problem: IMsProblem;
ScenTree: IMsScenarioTreeEntries;
MsScen, PoblemScen: IMsScenario;
IntKey: Integer;
ProbScen: IMsProblemScenarios;
Begin
MB := MetabaseClass.Active;
// Получаем контейнер моделирования
MsObj := MB.ItemById("MODEL_SPACE").Bind;
Ms := MsObj As IMsModelSpace;
// Получаем задачу моделирования
MObj := MB.ItemByIdNamespace("PROBLEM", MsObj.Key).Edit;
Problem := MObj As IMsProblem;
// Получаем 1-й сценарий в контейнере моделирования
ScenTree := Ms.ScenarioTree;
MsScen := (ScenTree.Item(0) As IMsScenarioTreeElement).Scenario;
// Получаем внутренний ключ сценария моделирования
IntKey := MsScen.InternalKey;
// Получаем сценарии задачи моделирования
ProbScen := Problem.Scenarios;
// Выполняем поиск 1-го сценария контейнера
// моделирования в сценариях задачи моделирования
PoblemScen := ProbScen.FindByInternalKey(IntKey);
// Если сценарий найден, то удаляем его из задачи моделирования
If PoblemScen <> Null Then
ProbScen.RemoveByInternalKey(IntKey);
End If;
// Сохраняем задачу моделирования
MObj.Save;
End Sub FindByInternalKey;
Результат выполнения примера: из коллекции сценариев задачи моделирования «PROBLEM» будет удален первый сценарий контейнера моделирования, если данный сценарий присутствует в коллекции.
См. также: