关于如何处理netsuite子列表的大量教程或参考,但它们都不符合我的需要。
我只需要通过客户端脚本更新/添加我在suitelet中创建的自定义子列表。这是我的suitelet代码
//this is a custom sublist
var sublist = form.addSubList('targetlist', 'list', null, 'target_list');
sublist.addField('industry', 'text', 'Industry');
sublist.addField('inp_name', 'text', 'Name');
在客户端脚本中,我只想在某些字段更改时添加一些订单项,例如
function targetListClient(type, name, lineNum) {
if(name == 'industry') {
nlapiSelectNewLineItem('targetlist');
nlapiSetCurrentLineItemValue('targetlist', 'industry', 'test');
nlapiSetCurrentLineItemValue('targetlist', 'inp_name', 'test again');
nlapiSetCurrentLineItemValue('targetlist', 'jobtitle', 'another test');
nlapiCommitLineItem('targetlist');
}
}
我认为这应该有效,但我收到了这个错误。 Uncaught TypeError: Cannot read property 'checkvalid' of undefined
我也尝试设置订单项nlapiSetLineItemValue('industry', 1, 'again')
,而不是选择当前订单项,但这也无效。
我实施子列表概念不正确吗?有人可以指导我这个。感谢。
答案 0 :(得分:0)
在函数targetListClient中,您为字段jobtitle提供值,但子列表创建代码仅包含字段industry和inp_name。
答案 1 :(得分:0)
您的代码是否也有form.setScript?您提到了客户端脚本。您需要使用form.setScript将客户端脚本附加到您的suitelet。
答案 2 :(得分:0)
尝试使用此功能:
nlapiSetCurrentLineItemValue('targetlist', 'industry', 'test',false,true);
<强>说明:强> nlapiSetCurrentLineItemValue有firefieldchanged参数,默认情况下设置为true如果你没有设置为false fieldChanged脚本被反复调用导致infinte循环。所以尝试将其设置为false。这应该解决问题
答案 3 :(得分:0)
将“列表”更改为“ INLINEEDITOR”,它将可以100%工作