0

我有以下脚本,应用于时间表记录,当时间表记录上的任何字段发生更改事件时,将调用该脚本。这在 body 字段上非常有效,但在 timegrid 内的字段上失败(我相信是 Timesheet 的一个子字段)。我要做的只是根据用户在向时间表添加时间时选择的客户显示/隐藏自定义字段。我想捕捉事件,检查客户,如果真的隐藏另一个字段。

下面的示例只是测试 isDisplay 函数的起点。它隐藏了触发事件的任何字段。通过更改时间网格中的客户来测试它时,它会触发,获取正确的 id,即字面意思是“客户”,但随后调用 getField() 返回 null。但是,如果我将它传递给它的主体字段之一(例如日期),则 getField() 可以正常工作。

例子:

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

      function fieldChanged(context) {
        //get reference to whichever field is changing and hide it...
        var f = context.currentRecord.getField({fieldId: context.fieldId});      
        f.isDisplay = false; 
      }

      return {
          fieldChanged: fieldChanged
      }
    }
);

谁能指出我正确的方向?我应该有另一种方式到达时间网格字段吗?我是 SuiteScript 的新手。

4

1 回答 1

0

Record.getField(options)返回正文字段。要获取您需要的子列表字段Record.getCurrentSublistField(options)。您可以检查 Context.sublistId以确定已更改的字段是否为子列表字段。

于 2017-12-19T09:31:41.950 回答