ParameterAsGroup: IMsModelParam;
Свойство ParameterAsGroup определяет идентификатор параметра, задающего элементы, по которым будет рассчитываться цикл. Если задано значение данного свойства, то свойства IMsCalculationChainIterator.Selection и IMsCalculationChainIterator.ElementGroup игнорируется.
Для выполнения примера предполагается наличие в репозитории справочника с идентификатором «D_SOURCE» и контейнера моделирования с идентификатором «CONT_ITERATOR». В контейнере должна содержаться метамодель с идентификатором «META_MODEL» и модели с идентификатором «MODEL».
Добавьте ссылки на системные сборки «Metabase», «Ms»
Sub UserProc;
Var
mb: IMetabase;
pModelSpace: IMetabaseObjectDescriptor;
pMetaModel: IMsMetaModel;
DictDescr: IMetabaseObjectDescriptor;
pIterator: IMsCalculationChainIterator;
param: IMsModelParam;
params: IMsModelParams;
Begin
mb := MetabaseClass.Active;
pModelSpace := mb.ItemById("CONT_ITERATOR");
pMetaModel := mb.ItemByIdNamespace("META_MODEL", pModelSpace.Key).Edit As IMsMetaModel;
params := pMetaModel.Params;
params.Clear;
param := params.Add;
param.DataType := DbDataType.Integer;
param.DefaultValue := 1;
DictDescr := mb.ItemById("D_SOURCE");
param.LinkedObject := DictDescr.Bind;
pMetaModel.CalculationChain.Clear;
pIterator := pMetaModel.CalculationChain.AddIterator("Test");
pIterator.Contents.Clear;
pIterator.Contents.AddModel(mb.ItemByIdNamespace("MODEL", pModelSpace.Key).Bind As IMsModel);
pIterator.ParameterAsGroup := param;
(pMetaModel As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера в цепочку расчета метамодели будет добавлен цикл с параметром. Параметр задает элементы, по которым будет идти расчет.
См. также: