AddAttributeVariable(Value: IVariableStub; AttributeId: String): IMsFormulaTransformVariable;
Value. Источник данных переменной;
AttributeId. Идентификатор атрибута, на котором основана переменная.
Метод AddAttributeVariable добавляет в коллекцию переменную, которая основана на атрибуте.
Переменные, основанные на атрибуте, предназначены для использования в выражениях. Для определения способа задания значения атрибута используйте IMsMetaAttributeValue.Kind.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором FC. В контейнере моделирования данной базы должна присутствовать модель с идентификатором MODEL_ATTR.
Добавьте ссылки на системные сборки: Cubes, Metabase, Ms, Rds.
Sub UserProc;
Var
Mb: IMetabase;
RubrDescr: IMetabaseObjectDescriptor;
Rubr: IRubricator;
MsDescr: IMetabaseObjectDescriptor;
Model: IMsModel;
Transform: IMsFormulaTransform;
TransformVarables: IMsFormulaTransformVariables;
Stub: IVariableStub;
TransVar: IMsFormulaTransformVariable;
Slice: IMsFormulaTransformSlice;
AttrValList: IMsMetaAttributeValueList;
AttrVal: IMsMetaAttributeValue;
Begin
Mb := MetabaseClass.Active;
RubrDescr := Mb.ItemById("FC");
Rubr := RubrDescr.Bind As IRubricator;
MsDescr := Rubr.ModelSpace;
Model := Mb.ItemByIdNamespace("MODEL_ATTR", MsDescr.Key).Edit As IMsModel;
Transform := Model.Transform;
TransformVarables := Transform.Outputs;
Stub := RubrDescr.Bind As IVariableStub;
TransVar := TransformVarables.AddAttributeVariable(Stub, "UNIT");
Slice := TransformVarables.Item(0).Slices.Item(0);
AttrValList := Slice.MetaAttributeValueList;
AttrVal := AttrValList.FindById("UNIT");
AttrVal.Kind := MsMetaAttributeValueType.Unspecified;
(Model As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера для модели будет добавлена входная переменная, основанная на атрибуте показателей UNIT (единицы измерения). Значение атрибута - неспецифицированное. Таким образом, во время расчета модели будет проверено значение данного атрибута для входных переменных, если значение совпадает, то оно будет записано в атрибут выходной переменной, если нет - то значение атрибута изменено не будет.
См. также: