Filter: Object;
dict. Справочник НСИ;
filter. Объект с настройками фильтра.
callback. Возвратная функция.
Свойство Filter устанавливает фильтр для элементов справочника НСИ.
Значение свойства устанавливается с помощью метода setFilter, а возвращается - с помощью метода getFilter. Из JSON значение задать нельзя.
При вызове метода setFilter используется два параметра: filter - объект с настройками фильтра в формате метаданных, elsMd - элементы справочника в формате метаданных, которые требуется отфильтровать.
Метод getFilter возвращает объект с настройками фильтра в формате метаданных.
Для выполнения примера необходимо наличие на странице компонента DictionaryBox с наименованием «dictionaryBox» (см. «Пример создания компонента DictionaryBox» ). Отфильтруем элементы справочника по строке «Секунда»:
var source = dictionaryBox.getSource()[0]; // Получим сервис для работы со справочником var service = source.getPPService(); // Возвратная функция function onFilterElementsReceived(sender, args) { var res = JSON.parse(args.ResponseText); var dict = args.Args.Dictionary; var filter = args.Args.Filter; // Установим фильтр dict.setFilter(filter, PP.getProperty(res, "GetRdsElementsResult.els.e")); // Вызовем событие ChildLoaded service.ChildLoaded.fire(service, { Dictionary: dict, ParentKey: "", IsFilter: true }); // Получим дерево элементов справочника НСИ var tree = dictionaryBox.getDataArea().getActiveDictTree(); tree._Filter = filter; // Загрузим все дочерние элементы, родителем которых является корень дерева tree.setChildNodes(""); }; // Определим настройки фильтра var filter = { levels: -1, text: { text: "Секунда" // Строка поиска } }; // Определим запрос, отсылаемый серверу var body = { GetRdsElements: { tRds: source.getOdId(), tArg: { showHidden: source.getShowHidden(), filter: filter, // Укажем фильтр pattern: { attributes: "*", getHasChildren: true, getLevel: true, getParentKey: true, getHistory: true } } } }; // Отправим запрос service._send(body, PP.Delegate(onFilterElementsReceived, service, { Filter: filter, Dictionary: source }));
В результате выполнения примера элементы справочника НСИ были отфильтрованы по строке «Секунда»:
См. также: