Dimension: IDimensionModel;
Dimension: Prognoz.Platform.Interop.Dimension.IDimensionModel;
Свойство Dimension определяет измерение для которого предназначено значение параметра.
Для получения коллекции значений параметра используйте свойство IMsDimOpenParamValue.Values.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MS», содержащего метамодель с идентификатором «METAMODEL». Данная метамодель должна содержать параметры для открытия объектов с параметрическими измерениями.
Добавьте ссылки на системные сборки «Dimensions», «Metabase», «Ms».
Sub GetParam;
Var
mb: IMetabase;
ms: IMetabaseObjectDescriptor;
MetaModel: IMsMetaModel;
StParams: IMsDimOpenStubParamValues;
i, j, k: Integer;
StVal: IMsDimOpenStubParamValue;
ParamVals: IMsDimOpenParamValues;
PVal: IMsDimOpenParamValue;
Val: IMetabaseObjectParamValue;
Begin
mb := MetabaseClass.Active;
// Получаем метамодель
ms := mb.ItemById("MS");
MetaModel := mb.ItemByIdNamespace("METAMODEL", ms.Key).Edit As IMsMetaModel;
// Получаем параметры метамодели для открытия объектов с параметрическими измерениями
StParams := MetaModel.DimOpenStubParamValues;
// Выводим информацию о параметрах в окно консоли
For i := 0 To StParams.Count - 1 Do
StVal := StParams.Item(i);
Debug.WriteLine("Параметр №" + (i + 1).ToString);
Debug.WriteLine(" Предназначен для объекта с ключом: " + StVal.StubKey.ToString);
Debug.WriteLine(" Значения параметра:");
ParamVals := StVal.Values;
For j := 0 To ParamVals.Count - 1 Do
PVal := ParamVals.Item(j);
Debug.WriteLine(" Справочник, на котором основано измерение объекта: " +
(PVal.Dimension As IMetabaseObject).Id);
Debug.WriteLine(" Значения параметра для данного измерения:");
For k := 0 To PVal.Values.Count - 1 Do
Val := PVal.Values.Item(k);
Debug.WriteLine(" " + Val.Value);
End For;
End For;
End For;
End Sub GetParam;
После выполнения примера информация о параметрах модели будет выведена в окно консоли.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
ms: IMetabaseObjectDescriptor;
MetaModel: IMsMetaModel;
StParams: IMsDimOpenStubParamValues;
i, j, k: Integer;
StVal: IMsDimOpenStubParamValue;
ParamVals: IMsDimOpenParamValues;
PVal: IMsDimOpenParamValue;
Val: IMetabaseObjectParamValue;
Begin
mb := Params.Metabase;
// Получаем метамодель
ms := mb.ItemById["MS"];
MetaModel := mb.ItemByIdNamespace["METAMODEL", ms.Key].Edit() As IMsMetaModel;
// Получаем параметры метамодели для открытия объектов с параметрическими измерениями
StParams := MetaModel.DimOpenStubParamValues;
// Выводим информацию о параметрах в окно консоли
For i := 0 To StParams.Count - 1 Do
StVal := StParams.Item[i];
System.Diagnostics.Debug.WriteLine("Параметр №" + (i + 1).ToString());
System.Diagnostics.Debug.WriteLine(" Предназначен для объекта с ключом: " + StVal.StubKey.ToString());
System.Diagnostics.Debug.WriteLine(" Значения параметра:");
ParamVals := StVal.Values;
For j := 0 To ParamVals.Count - 1 Do
PVal := ParamVals.Item[j];
System.Diagnostics.Debug.WriteLine(" Справочник, на котором основано измерение объекта: " +
(PVal.Dimension As IMetabaseObject).Id);
System.Diagnostics.Debug.WriteLine(" Значения параметра для данного измерения:");
For k := 0 To PVal.Values.Count - 1 Do
Val := PVal.Values.Item[k];
System.Diagnostics.Debug.WriteLine(" " + Val.Value);
End For;
End For;
End For;
End Sub;
См. также: