Acumatica SOLine问题,更新折扣金额字段

时间:2019-03-27 15:47:09

标签: acumatica

我对销售订单表格(SO301000)进行了自定义,这确实很不明智。目标是使用5个自定义字段来计算一行中增加的费用。我已经工作了5个字段(1个整数,4个十进制的8,3),添加了代码和attirbutes,以使它们在编辑后更新行。在每个字段更新后,我运行一个行更新功能,在此末尾,它将更新数量,折扣金额和自定义字段(用于故障排除)。

让我抓狂的是,它完美地更新了数量和自定义字段...但是在4个小数字段上,它似乎每隔一次才更新折扣。起初,我以为我遇到了一些逻辑问题,即int字段(并且我不知道它是否与变量类型有关,但这是我唯一能看到的区别)

每个字段更改后要更新的代码都是相同的(当然,除了字段名以外):

protected void SOLine_UsrWidthAdder_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
{
    UpdateLineDirect(cache, (SOLine)e.Row);
}

UpdateLineDirect末尾的代码如下:

cache.SetValue<SOLine.manualDisc>(TheRow, true);
cache.SetValue<SOLine.discPct>(TheRow, dDiscountPercent); 
cache.SetValue<SOLineExt.usrCostCalc>(TheRow, TestString);
cache.SetValue<SOLine.curyDiscAmt>(TheRow, dDiscountAmount); 
cache.SetValueExt<SOLine.orderQty>(TheRow, dQO);  

我尝试了各种顺序的字段更新,并每次都使用Ext更新它们以强制进行计算,但是我尝试过的所有组合似乎都没有多大作用。

谢谢!

1 个答案:

答案 0 :(得分:0)

因此,看起来Acumatica不希望同时更新折扣金额和百分比。

我删除了这一行:

cache.SetValue<SOLine.discPct>(TheRow, dDiscountPercent); 

并且仅更新此内容(这是我首先要的内容)

cache.SetValue<SOLine.curyDiscAmt>(TheRow, dDiscountAmount); 

它现在可以正常工作了。