FindByKey(InrernalKey: Integer): IMsScenarioTreeEntry;
FindByKey(InrernalKey: uinteger): Prognoz.Platform.Interop.Ms.IMsScenarioTreeEntry;
InrernalKey. Internal key of the modelling scenario.
The FindByInternalKey method searches for the modelling scenario by the internal key.
To get the internal key of the modelling scenario, use the IMsScenario.InternalKey property.
Executing the example requires that the repository contains a modeling container with the MODEL_SPACE identifier. The modeling container must contain several modelling scenarios.
Add links to the Metabase, Ms system assemblies.
Sub FindByInternalKey;
Var
MB: IMetabase;
MsObj: IMetabaseObject;
Ms: IMsModelSpace;
ScenTree: IMsScenarioTreeEntries;
ScenEntry: IMsScenarioTreeEntry;
IntKey: Integer;
Begin
MB := MetabaseClass.Active;
// Get modeling container
MsObj := MB.ItemById("MODEL_SPACE").Edit;
Ms := MsObj As IMsModelSpace;
// Get scenario tree
ScenTree := Ms.ScenarioTree;
// Set internal key value
IntKey := 44489;
// Search for the object by internal key value in the scenario tree
ScenEntry := ScenTree.FindByInternalKey(IntKey);
// If the object is found, remove it from the scenario tree
If ScenEntry <> Null Then
ScenTree.RemoveByInternalKey(IntKey);
End If;
// Save changes
MsObj.Save;
End Sub FindByInternalKey;
Example execution result: a scenario with the 44489 key will be removed from the scenario tree in the MODEL_SPACE modeling container if this scenario is contained in the container.
The requirements and result of the Fore.NET example execution match with those in the Fore example.
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MsObj: IMetabaseObject;
Ms: IMsModelSpace;
ScenTree: IMsScenarioTreeEntries;
ScenEntry: IMsScenarioTreeEntry;
IntKey: uinteger;
Begin
MB := Params.Metabase;
// Get modeling container
MsObj := MB.ItemById["MODEL_SPACE"].Edit();
Ms := MsObj As IMsModelSpace;
// Get scenario tree
ScenTree := Ms.ScenarioTree;
// Set internal key value
IntKey := 44489;
// Search for the object by internal key value in the scenario tree
ScenEntry := ScenTree.FindByInternalKey(IntKey);
// If the object is found, remove it from the scenario tree
If ScenEntry <> Null Then
ScenTree.RemoveByInternalKey(IntKey);
End If;
// Save changes
MsObj.Save();
End Sub;
See also: