我查看了很多Netsuite的文档,并在stackoverflow上搜索,但目前没有看到这个问题。
我基本上想要锁定(禁止最终用户更改)销售订单上的某些字段,这些字段在满足某些条件后会影响保证金。我已经能够在项目级别锁定我想要的字段,但我意识到他们仍然可以添加/复制/删除项目,这也会影响保证金。
我不想要锁定整个项目子列表 - 我们希望它们能够编辑次要内容,但实际项目无法添加/复制/删除。
我有什么想法可以做到这一点?基本上以某种方式删除添加/复制/删除按钮?
编辑: 由于删除了我的Javascript标记,我将解释它的用途。这个删除,因为在行级别,我知道需要使用NetSuite的API在SuiteScript-Javascript中完成。值得注意的是,这是我试图使用的语言。
代码:为了解释我到目前为止所做的工作,下面是一些伪代码:
function pageInit(){
if(currDate >= dLockDate && type == 'edit'){
//lock SO Date (header level)
nlapiDisableField('trandate', true);
}
}
在lineInit://锁定订单项级别的某些字段
function lineInit(){
if(type == 'item'){
//list of items to disable
var a_itemDisFields = ['rate', 'quantity','porate','amount', 'item'];
for(var i = 0; i < a_itemDisFields.length; i++){
nlapiDisableLineItemField('item',a_itemDisFields[i] , true);
}
}
}
与上述两个功能类似,我禁用了字段,我想禁用添加订单项的功能。我不想锁定整个记录(因为我知道我可以从工作流程中完成),而是希望阻止用户在Item子列表中添加/复制/删除项目。
答案 0 :(得分:2)
您可以在客户端脚本中使用validateLine
事件,以防止用户在满足特定条件时添加行。您使用的函数只需要返回一个布尔值:true
如果行添加可以继续,false
如果它不应该。
同样,您可以使用validateDelete
事件来阻止在符合某些条件时删除行。
最后,并且还遵循类似的模式,可以使用validateField
事件来阻止用户在满足某些条件时修改字段值。它并没有完全禁用该字段,但它会阻止它们更改值。
将这些事件处理函数添加到客户端脚本应该允许您阻止所需的更改,但它实际上不会禁用任何字段。
你可以使用jQuery来禁用添加/复制/删除按钮和某些字段,但我怀疑NetSuite是否会考虑支持&#34;方法