我有一个由PXAction调用的存储过程 . 我知道这是违反Acumatica使用存储过程的最佳实践,但我还是为我的目标找到了另一种解决方案 . 存储过程根据确定单价的breakQuantity评估每个订单项及其关联的价格类 . 如果多个项目属于同一价格类==或超过中断数量,则单位价格会降低 .
我开始的是行更新
protected virtual void SOLine_RowUpdating(PXCache sender, PXRowUpdatingEventArgs e)
{
SOLine row = (SOLine)e.Row;
formalizeOrderTotal(row);
}
然后在我的formalizeOrderTotal函数中,它在 SOLine in lines.Select()
上执行了一个foreach循环以添加订单数量 . 作为测试,我只是尝试将所有订单数量相加并将其应用于每个订单项 . 这仅在刷新后更新,否定了将存储过程移动到c#function / Acumatica事件处理程序的目的 .
如果有人有一些建议是更新缓存中所有行项目的好方法,那么如果你能提供一些输入,将不胜感激 .
1 回答
尝试使用
Base.Transactions.View.RequestRefresh();
,它将要求网格自行刷新 . 在此示例中,我将每个行数量设置为网格中存在的SOLINE数量 .