Как динамически фильтровать подсписки на основе addField? (Netsuite) - PullRequest
0 голосов
/ 28 мая 2020

У меня есть набор программ, который вызывает подсписок, но хотел бы активировать фильтр при нажатии addButton.

Suitelet:

    var form = serverWidget.createForm({ title : 'Unbilled Orders', hideNavBar : false });
    form.addField({id: 'name_criteria', label: 'Name', type: serverWidget.FieldType.MULTISELECT, source: 'customer'});
    form.addButton({label: 'Filter',id: 'custpage_mybutton',functionName: 'myButtonFunction()'});

    var name_field = context.request.parameters.name_criteria;
    //# Filter does not work as name_field='' #
    var objSublistSearch = search.load({ id: SEARCH_ID });
    var filterArray = objSublistSearch.filters;
    filterArray.push(search.createFilter({ name: 'entity', operator: search.Operator.ANYOF, values: name_field }));
    objSublistSearch.filters = filterArray;

    var SublistSearch = objSublistSearch.run();
...
 context.response.writePage(form);

Clientscript: не обновляет подсписок

function myButtonFunction() {
           // Load current record in order to manipulate it
           var objRecord  = currentRecord.get()
         var field2 =  objRecord.getValue({
               fieldId: 'name_criteria',
           });
         log.debug("field2",field2 );}

Ответы [ 3 ]

0 голосов
/ 09 июня 2020

Вы можете использовать методы insertLine и removeLine currentRecord для обновления подсписка, но учтите, что они будут работать только для редактируемых подсписок (INLINEEDITOR и EDITOR).

Если вы используете SublistType.LIST, вам придется перезагрузите набор в myButtonFunction ().

0 голосов
/ 13 июня 2020

Используется url.resolveScript для возврата параметров.

0 голосов
/ 29 мая 2020

Вы смотрите только на поле «body», а не на подсписок.

Попробуйте использовать функции подсписка в клиентском скрипте.

var lines = objRecord.getLineCount({sublistId:'custpage_sublistid'});

for (line = 0; line < lines; line++) {

    objRecord.selectLine({sublistId:'custpage_sublistid', line:line });

    var existingValue = objRecord.getSublistValue({sublistId:'custpage_sublistid', fieldId:'custpage_columnid', line: line });

    objRecord.setCurrentSublistValue({sublistId:'custpage_sublistid', fieldId:'custpage_columnid', value: 12345 });

    // do other stuff

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...