我愿意通过Forms,Workflows或Suitescript这样做。到目前为止,没有人能为我工作。
在交易中,用户可以将帐单更改为或发送给客户的地址。由于用户使用覆盖功能而不是正常的“地址行1,城市,州,邮编”行,我们遇到了问题。因此,我们要禁用覆盖功能。
我无法在任何表格中找到这个。我已经尝试了工作流程 - 我在“记录前加载”,“用户编辑前”和“字段编辑前”中禁用了它。在任何这些情况下,我都无法隐藏或禁用“覆盖”按钮。我还尝试隐藏/禁用他们在点击覆盖后输入的地址自由格式文本框。我在上述所有阶段中执行了此操作,并在按下“覆盖”按钮时进行了“字段编辑”。最后,我试图让地址字段成为强制性的。为此,我尝试将地址行1,城市,州,邮政编码全部设为必填项,并在记录加载之前,用户编辑之前和字段编辑之前再次尝试。没有实际工作。在任何情况下工作流都会说它在Before Record加载之前触发,但是当我去添加或编辑地址时,它仍然有效。
我的一部分困惑在于究竟是什么地址。当用户在事务级别(报价单,销售订单或发票)上执行此操作时,从技术上讲,更新存储在客户级别上。我尝试在客户级别上应用相同的上述工作流程但没有成功。
我即将尝试使用脚本编写此脚本,但基于上述所有使用Workflow的测试,我们并不感到非常乐观。
有没有其他人试图对交易级别的地址进行任何操作?你是怎么做到的?同样,我对表单,工作流程或脚本持开放态度。如果你在这些之外做了,请解释。
修改: 我仍然需要帮助。这个问题一直存在。有没有人找到一种方法来禁用交易中的“覆盖”功能,但仍允许下拉?
答案 0 :(得分:0)
这似乎可以禁用事务上地址的下拉选择列表。我只是在销售订单上测试过,但理论也适用于其他交易。
var DcDisableAddress = {
beforeLoad : function(type, form) {
if (type == 'edit') {
var shipSelect = form.getField('shipaddresslist');
if (shipSelect) {
shipSelect.setDisplayType('disabled');
}
}
}
}
答案 1 :(得分:0)
在下面将其用作您的地址表中的自定义代码。
/**
*@NApiVersion 2.0
*@NScriptName
*@NScriptType ClientScript
*/
define(['N/currentRecord'],function(currentRecord) {
function pageInit(context) {
var field = context.currentRecord.getField({
fieldId: 'override'
});
field.isDisabled = true;
}
return {
pageInit: pageInit
};
});