selectByKeys(dim: PP.Mb.DimSource, args: Object, callback: Function | PP.Delegate, errorCallback: Function | PP.Delegate);
dim. Справочник;
args. Аргументы операции. Объект должен содержать следующие поля: selId - моникёр отметки; keys - ключи выделяемых элементов; selCommand - тип операции, элемент перечисления PP.Mb.SelCommands; dmElRelative - зависимые элементы, относительно указанных ключей, элемент перечисления PP.Mb.DmElRelative; fireEvent - признак вызова события DimSrv.SelectionChanged, если для параметра установлено значение true, то событие будет вызвано;
callback. Функция обратного вызова;
errorCallback. Функция обратного вызова при ошибке.
Метод selectByKeys устанавливает отметку элементам по ключам.
Для реализации примера необходимо наличие экземпляра класса DimSrv с наименованием «dimService» (см. Конструктор DimSrv). Добавим обработчик события изменения отметки элементов справочника. Установим отметку всем дочерним элементам у элемента с ключом «YEARS:2000» и получим наименования всех отмеченных элементов:
// Добавляем обработчик события изменения отметки элементов dimService.SelectionChanged.add(function(sender, args) { console.log("Изменилась отметка элементов"); }); // Устанавливаем отметку всем дочерним элементам у элемента с ключом «YEARS:2000» var args = { keys: ["YEARS:2000"], selCommand: PP.Mb.SelCommands.Select, dmElRelative: PP.Mb.DmElRelative.Children }; var elemsForUpdate = []; dimService.selectByKeys(dim, args); // Получаем наименования всех отмеченных элементов измерения var func = function(sender, args) { var res = JSON.parse(args.ResponseText); var elems = res.GetDimElementsResult.els.e; console.log("Наименования отмеченных элементов:"); for (var i in elems) { console.log(elems[i].n); elemsForUpdate.push(elems[i].k); } } dimService.getAllSelectedEls(dim, func); // Обновляем элементы, которым была установлена отметка dimService.updateStateData(dim, {keys: elemsForUpdate});
В результате в консоль были выведены наименования всех отмеченных элементов:
Изменилась отметка элементов
Наименования отмеченных элементов:
I квартал 2000
II квартал 2000
III квартал 2000
IV квартал 2000
Снимем отметку со всех элементов измерения и проверим наличие отмеченных элементов:
// Снимаем отметку со всех элементов args = { dmSelectionArg: { elSelectOp: PP.Mb.SelCommands.Deselect, elRelative: PP.Mb.DmElRelative.All } }; dimService.execCommand(dim, args); // Проверяем наличие отмеченных элементов var func2 = function(sender, args) { var res = JSON.parse(args.ResponseText); var elems = res.GetDimElementsResult.els; console.log(elems ? "Есть отмеченные элементы" : "Отмеченных элементов нет"); } dimService.getAllSelectedEls(dim, func2);
В результате в консоль был выведен результат проверки наличия отмеченных элементов:
Изменилась отметка элементов
Отмеченных элементов нет
См. также: