【问题标题】:Client script - Field change event - Bodyfield checkbox - set sublist value only changes one line客户端脚本 - 字段更改事件 - 正文字段复选框 - 设置子列表值仅更改一行
【发布时间】:2019-12-24 18:55:28
【问题描述】:

我在任务记录上创建了一个客户端脚本(字段更改)。 子列表是自定义子记录。我希望如果 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
        };
    });

【问题讨论】:

    标签: netsuite suitescript2.0


    【解决方案1】:

    找到了... 设置 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
                });
    

    【讨论】:

      猜你喜欢
      • 2015-01-27
      • 2021-10-29
      • 2021-07-23
      • 2015-05-24
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      • 2019-03-05
      相关资源
      最近更新 更多