cloneItems(dict: PP.Rds.Dictionary, parentKey: String, sourceKeys: Array, callback: function|PP.Delegate);
dict. Справочник НСИ, копии элементов которого требуется сделать;
parentKey. Ключ элемента справочника,который станет родителем для скопированных элементов;
sourceKeys. Ключи копируемых элементов.
callback. Возвратная функция.
Метод cloneItems создаёт копии элементов справочника.
Для выполнения примера необходимо наличие на странице компонента DictionaryBox с наименованием «dictionaryBox» (см. «Пример создания компонента DictionaryBox» ). Сделаем копии всех дочерних элементов справочника НСИ, в качестве родителя установим первый элемент, обработаем событие ItemOperationDone:
// Получим справочник НСИ var source = dictionaryBox.getSource()[0]; // Получим сервис для работы со справочником var service = source.getPPService(); // Обработаем событие ItemOperationDone service.ItemOperationDone.add(function (sender, args) { console.log("Родительский элемент: %s", args.ParentKey); console.log("Тип операции: %s", args.Operation); if (args.Keys) { console.log("Ключи элементов: %s", args.Keys.toString()); } }) // Получим дочерние элементы справочника var childEls = source.getChildEls(); var keys = []; for (var i = 0; i < childEls.length; i++) { keys.push(childEls[i].getKey()); }; // Сделаем копии элементов service.cloneItems(source, keys[0], keys, function () { var keysToLoad = []; keysToLoad.push({ key: source._rootKey }); service.getToKeys(source, keysToLoad); // Обновим дерево элементов справочника dictionaryBox.getDataArea().getActiveDictTree().refreshAll(); });
В результате выполнения примера были созданы копии всех дочерних элементов справочника НСИ, родителем которых стал первый дочерний элемент:
После срабатывания события ItemOperationDone в консоли браузера был выведен ключ родительского элемента, тип произведённой операции и ключи копий элементов:
Родительский элемент: 2102
Тип операции: Insert
Ключи элементов: 2114,2115,2116
См. также: