netsuite - 如何根据addField动态过滤子列表?
问题描述
我有一个调用子列表的 Suitelet,但我想在单击“addButton”时触发过滤器。
套房:
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);
客户端脚本(不更新子列表):
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 );}
解决方案
您可以使用 currentRecord 的 insertLine 和 removeLine 方法来更新子列表,但请注意它们仅适用于可编辑的子列表(INLINEEDITOR 和 EDITOR)。
如果您使用的是 SublistType.LIST,则必须在 myButtonFunction() 中重新加载套件。
推荐阅读
- java - 签名视图不适用于 Android 8 + 设备
- python - 如何将numpy数组导出到csv而不在文件中包含文件名
- swift - 如何从结构注册 NSNotification?
- azure - 如何获取 Azure 虚拟机的“上次登录/访问”时间
- python - 检查数据框中是否存在值并在不使用列名的情况下获取其索引
- sharepoint - 无法在 Sharepoint 设计器 2013 中创建工作流
- java - 在 RxJava 调用后从方法返回字符串
- puppeteer - 为什么在使用 puppeteer-extra 插件和 puppeteer 时隐身模式不起作用
- android - 如何在 React-Native 中在没有 Internet 的情况下通过 Wifi 发送和接收数据
- java - Java中对象映射器的使用