MarthaF
MarthaF

Reputation: 187

How to dynamically filter sublist based on addField?

I have a Suitelet that calls a sublist but I would like to trigger a filter when an "addButton" is clicked.

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);

Client script (does not update the sublist):

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 );}

Upvotes: 0

Views: 1268

Answers (2)

Jala
Jala

Reputation: 919

You can use currentRecord's insertLine and removeLine methods to update the sublist but please note that they will only work for editable sublists (INLINEEDITOR and EDITOR).

If you are using SublistType.LIST, you will have to reload the suitelet in your myButtonFunction().

Upvotes: 1

Steve Reeder
Steve Reeder

Reputation: 1022

You're only looking at the "body" field not a sublist.

Try using sublist functions within the client script.

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

}

Upvotes: 0

Related Questions