禁用地址栏中的覆盖

时间:2014-06-13 17:24:31

标签: netsuite

我愿意通过Forms,Workflows或Suitescript这样做。到目前为止,没有人能为我工作。

在交易中,用户可以将帐单更改为或发送给客户的地址。由于用户使用覆盖功能而不是正常的“地址行1,城市,州,邮编”行,我们遇到了问题。因此,我们要禁用覆盖功能。

我无法在任何表格中找到这个。我已经尝试了工作流程 - 我在“记录前加载”,“用户编辑前”和“字段编辑前”中禁用了它。在任何这些情况下,我都无法隐藏或禁用“覆盖”按钮。我还尝试隐藏/禁用他们在点击覆盖后输入的地址自由格式文本框。我在上述所有阶段中执行了此操作,并在按下“覆盖”按钮时进行了“字段编辑”。最后,我试图让地址字段成为强制性的。为此,我尝试将地址行1,城市,州,邮政编码全部设为必填项,并在记录加载之前,用户编辑之前和字段编辑之前再次尝试。没有实际工作。在任何情况下工作流都会说它在Before Record加载之前触发,但是当我去添加或编辑地址时,它仍然有效。

我的一部分困惑在于究竟是什么地址。当用户在事务级别(报价单,销售订单或发票)上执行此操作时,从技术上讲,更新存储在客户级别上。我尝试在客户级别上应用相同的上述工作流程但没有成功。

我即将尝试使用脚本编写此脚本,但基于上述所有使用Workflow的测试,我们并不感到非常乐观。

有没有其他人试图对交易级别的地址进行任何操作?你是怎么做到的?同样,我对表单,工作流程或脚本持开放态度。如果你在这些之外做了,请解释。

修改: 我仍然需要帮助。这个问题一直存在。有没有人找到一种方法来禁用交易中的“覆盖”功能,但仍允许下拉?

2 个答案:

答案 0 :(得分:0)

这似乎可以禁用事务上地址的下拉选择列表。我只是在销售订单上测试过,但理论也适用于其他交易。

var DcDisableAddress = {
    beforeLoad : function(type, form) {
        if (type == 'edit') {
            var shipSelect = form.getField('shipaddresslist');
            if (shipSelect) {
                shipSelect.setDisplayType('disabled');
            }
        }
    }
}

enter image description here

答案 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
    };
});