我有以下脚本,应用于Timesheet记录,当时间表记录上的任何字段发生更改事件时,将调用该脚本。这在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的新手。
答案 0 :(得分:0)
Record.getField(options)
返回正文字段。要获取子列表字段,您需要Record.getCurrentSublistField(options)
。您可以检查Context.sublistId
以确定更改的字段是否为子列表字段。