首页 > 解决方案 > 客户端脚本 - 字段更改事件 - 正文字段复选框 - 设置子列表值仅更改一行

问题描述

我在任务记录上创建了一个客户端脚本(字段更改)。子列表是自定义子记录。我希望如果bodyfield复选框设置为true->更改所有子列表行项目...理论上子列表的“标记全部/选择”所有复选框。

该脚本至少适用于 1 行...如果我使用 selectline "i",它将与子列表的最后一行一起使用 -> 如果我以 "0" 开头,它会更改第一行的值...

我该如何解决这个问题?

/**
 *@NApiVersion 2.x
 *@NScriptType ClientScript
 */

define(['N/error', 'N/currentRecord'],
    function(error) {

        function fieldChanged(context) {

            var currentRecord = context.currentRecord;

            var subList = currentRecord.getSublist({
            sublistId: 'recmachcustrecord250'});

            var numLines = currentRecord.getLineCount({
            sublistId: 'recmachcustrecord250'});

          var currIndex = currentRecord.getCurrentSublistIndex({
            sublistId: 'recmachcustrecord250'});


                for (var i = 0; i < numLines; i++)  {

                var checkbox = currentRecord.getValue({
                fieldId: 'custevent28'});

                  currentRecord.selectLine({
                    sublistId: 'recmachcustrecord250',
                        line: 0});

        if(context.fieldId == 'custevent28'){
                if (checkbox == true) {
            currentRecord.setCurrentSublistValue({
            sublistId: 'recmachcustrecord250',
            fieldId: 'custrecord265',
            line: i,
            value: true,
            forceSyncSourcing:true
            });
        } else {
            currentRecord.setCurrentSublistValue({
            sublistId: 'recmachcustrecord250',
            fieldId: 'custrecord265',
            line: i,
            value: false,
            forceSyncSourcing:true
            });

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


        }

        return {
            fieldChanged: fieldChanged
        };
    });

标签: netsuitesuitescript2.0

解决方案


找到它...设置 CurrentSublistValue 没有“行”并且带有 ignoreFieldchange...

if(context.fieldId == 'custevent28'){
                if (checkbox == true) {
            currentRecord.setCurrentSublistValue({
            sublistId: 'recmachcustrecord250',
            fieldId: 'custrecord265',
           // line: i,
            value: currentRecord.getValue({
            fieldId: 'custevent28'}),
            ignoreFieldChange: true
            });
            currentRecord.commitLine({
            sublistId: 'recmachcustrecord250'});
        } else {
            currentRecord.setCurrentSublistValue({
            sublistId: 'recmachcustrecord250',
            fieldId: 'custrecord265',
          //  line: i,
            value: currentRecord.getValue({
            fieldId: 'custevent28'}),
            ignoreFieldChange: true
            });

推荐阅读