我在更改另一个属性后更新属性时会遇到这种奇怪的行为。 new_manual_invoice_number
中的值以某种方式被清除:
function handleInvoiceNumber(context) {
if (Xrm.Page.getAttribute('invoicenumber').getValue() != undefined) {
if (Xrm.Page.getAttribute('tec_manual_invoice_number').getValue() == undefined) {
var manualNumber = Xrm.Page.getAttribute('invoicenumber').getValue();
manualNumber = manualNumber.split('-')[0] + '-' + manualNumber.split('-')[1];
Xrm.Page.getAttribute('tec_manual_invoice_number').setValue(manualNumber);
}
}
};
当invoicenumber
发生变化时,这种情况正在运行(它是一个只读字段,并在保存发票时发生变化)。
这很好用,我可以看到表单中出现的值,但不知何故,有些东西会清除它,我会在文本框中显示--
。这不是我的其他任何代码,只有函数引用new_manual_invoice_number
。
我尝试过在保存处理程序,表单加载等方面运行此代码。
我在表单加载事件中也设置了一个断点,看它是否由于自动保存或其他原因而没有重新加载,似乎不是问题。
有什么想法吗?相当令人沮丧...
PS:使用Microsoft CRM 2016。
编辑:我认为这与发票产品网格触发其他事件有关,但我不确定。目前,代码仅在表单的save事件上运行,这是有效的。