MoveObject(Source: ICalcObject, Target: ICalcObject);
Source. Объект алгоритма расчёта, который необходимо переместить;
Target. Объект алгоритма расчёта, на место которого будет перемещен указанный объект.
Метод MoveObject изменяет порядок объектов алгоритма расчёта.
Для выполнения примера предполагается наличие в репозитории алгоритма расчёта с идентификатором ALGORITHM. В алгоритме расчёта должно содержаться не менее трёх объектов.
Добавьте ссылки на системные сборки: Algo, Metabase. Также добавьте ссылки на сборки, которые необходимы для работы с алгоритмами расчёта.
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObjectDescriptor;
Algo: ICalcObject;
List: ICalcObjectsList;
CalcAlgo: ICalcAlgorithm;
Source, Target: ICalcObject;
Begin
MB := MetabaseClass.Active;
// Получим алгоритм расчёта
MObj := MB.ItemById("ALGORITHM");
Algo := CalcObjectFactory.CreateCalcObject(MObj, True);
CalcAlgo := Algo As ICalcAlgorithm;
// Получим список объектов алгоритма расчёта
List := CalcAlgo.Items;
// Переместим первый объект на место третьего
Source := List.Item(0) As ICalcObject;
Target := List.Item(2) As ICalcObject;
CalcAlgo.MoveObject(Block1, Block3);
// Сохраним изменения в алгоритме расчёта
CalcAlgo.SaveObject;
End Sub UserProc;
В результате выполнения примера в алгоритме расчёта будет изменен порядок объектов для расчёта: на место третьего объекта переместится первый, на место первого - второй, на место второго - третий.
См. также: