如何使用2.0 Netsuite SuiteScript中的客户端脚本设置子列表值

时间:2018-05-18 07:15:27

标签: netsuite

在客户端脚本中使用时如何设置子列表值。我尝试了所有的方法,但它没有工作,并返回相同的错误。

fieldChanged: function(context){

     var record = currentRecord.get();

     //var record = context.currentRecord; // not working


     if(context.fieldId =='custpage_cancel'){

         var objSublist = record.getSublist({  //returns sublist obj but can not set 
         sublistId: 'custpage_sublist'
         });


        objSublist.setSublistValue({  // Not working ERROR: objSublist.setSublistValue is not a function
            fieldId : 'custpage_id',
            line : 0,
            value : true
        });

        // record.setSublistValue({        // Not working ERROR: objSublist.setSublistValue is not a function
         // sublistId: 'custpage_sublist',
         // fieldId: 'custpage_id',
         // line: 0,
         // value: true
        // });

     }
 }

错误:截图

Error ScreenShot

3 个答案:

答案 0 :(得分:4)

尝试选择该行并设置值,在netsuite中为当前记录,他们更喜欢使用选择行和设置值

var records = context.currentRecord
 var lineNum = records .selectLine({
    sublistId: 'custpage_sublist',
    line: 0
});

    records.setCurrentSublistValue({
                        sublistId: 'custpage_sublist',
                        fieldId: 'custpage_id',
                        value: true,
                        ignoreFieldChange: true
                    });
   records.commitLine({
                        sublistId: 'sublistidentire'
                    });

答案 1 :(得分:0)

尝试对自定义列表子列表“列表”执行相同操作,并抛出错误

enter image description here


用户事件脚本

function beforeLoad(){

  var form = scriptContext.form;

  var sublistaAplicar=form.addSublist({
    id: 'custpage_invoice', 
    type: 'list',
    label: 'Facturas',
    tab: 'custpage_aplicar'
    });

sublistaAplicar.addField({
        id : 'custpage_type',
        type : serverWidget.FieldType.TEXT,
        label : 'Type'
             });

}


client script.js

function validateField(scriptContext) {

  var currentRecord = scriptContext.currentRecord;

  var lineNum = currentRecord.selectLine({
            sublistId: 'custpage_invoice',
            line: 0
        });

        currentRecord.setCurrentSublistValue({
                                sublistId: 'custpage_invoice',
                                fieldId: 'custpage_type',
                                value: 'test',
                                ignoreFieldChange: true
                            });

        currentRecord.commitLine({
                                sublistId: 'custpage_invoice'
                            });

}

答案 2 :(得分:-2)

在客户端脚本上选择行之前,可能需要先使用插入新行的命令。