Как отфильтровать поиск/диалоговое окно дополнительных активов, чтобы перечислять только активы в местоположении заказа на работу

Мне нужно отфильтровать список доступных активов, из которых можно выбрать те активы, которые находятся в местоположении текущего заказа на работу. Я не хочу видеть в списке активы, которых нет в текущем местоположении.

Я нашел место в javascript

 var filter = [];   
 filter.push({siteid: siteid});
 additionalasset.lookupFilter = filter; 

... что, по-видимому, позволяет мне вставлять фильтры в массив фильтров. Будет ли это идеальным методом для использования? 1) Определите местоположение в рабочем задании и 2) нажмите дополнительный фильтр, например.

filter.push({location: location});

Я ищу решение, которое является динамическим, так что если пользователь изменит местоположение, а затем захочет выбрать актив, доступный список активов будет обновляться на основе этого фильтра для этих активов в этом месте. Надеюсь, это понятно.


person Drew Hohnstein    schedule 12.10.2015    source источник


Ответы (2)


Да, это именно то, как вы должны делать этот код. У нас была ошибка (по-моему, исправленная в 7.5.2.1), из-за которой самое первое выбранное вами местоположение использовалось повторно при второй попытке выбрать ресурс. Если вы по-прежнему наблюдаете такое же поведение в версии 7.5.2.1, откройте PMR, и мы предоставим вам iFix для поддержки этого.

person scott dickerson    schedule 13.10.2015
comment
Спасибо, Скотт. Я пробовал и не смог этого сделать. В частности, я изменяю функцию filterAssetForLookup в WODetailHandler.js. Внутри этой функции я добавил строку: 'code'filter.push({location: this.curLocation}); ... но это, похоже, не работает. По сути, он должен захватить местоположение в текущем рабочем задании и отфильтровать список активов в поиске только для тех, кто находится в этом месте. Любая помощь будет оценена по достоинству. - person Drew Hohnstein; 16.12.2015

Этот фрагмент кода сделал то, что мне было нужно. По какой-то причине я могу нажать несколько критериев фильтра за один вызов .push(), но я не могу .push() несколько фильтров отдельно, как я пытался раньше.

var currLocation = workOrderSet.getCurrentRecord().get("location");
filter.push({siteid: siteid, location: currLocation});
person Drew Hohnstein    schedule 21.10.2016