我有以下脚本,应用于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的新手。
Record.getField(options)
返回身体字段。要获取子列表字段,您需要Record.getCurrentSublistField(options)
。您可以检查Context.sublistId
以确定更改的字段是否是子列表字段。