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

Set line items in custom sublist

本文关键字:设置 单项 列表 自定义      更新时间:2023-09-26
很多

关于如何处理netsuite子列表的教程或参考,但没有一个适合我的需求。

我只需要通过客户端脚本更新/添加我在 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')而不是选择当前行项目,但这也不起作用。

我是否不正确地实现了子列表概念?有人可以指导我吗?谢谢。

在函数 targetListClient 中,您为字段 jobtitle 指定一个值,但子列表创建代码只有字段行业和inp_name。

你的代码也有form.setScript吗? 您提到了客户端脚本。 您需要使用 form.setScript 将客户端脚本附加到您的套件。

尝试使用这个:

nlapiSetCurrentLineItemValue('targetlist', 'industry', 'test',false,true);

解释:nlapiSetCurrentLineItemValue 具有 firefieldchanged 参数,如果您不将其设置为 false field,则默认情况下设置为 true 反复调用更改的脚本导致无限循环。因此,请尝试将其设置为 false 。这应该可以解决问题

将"LIST"更改为"INLINEEDITOR",它将100%工作