在自定义子列表中设置订单项

时间:2015-06-19 10:02:55

标签: javascript netsuite sublist

关于如何处理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'),而不是选择当前订单项,但这也无效。

我实施子列表概念不正确吗?有人可以指导我这个。感谢。

4 个答案:

答案 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%工作