Acumatica 使用操作\复制顺序时重置自定义总和字段的值
我有两个自定义摘要字段,用于计算总计。看起来这些行的总和是正确的,但是Acumatica并不是每次都重新计算总和,而是改变它,当我复制时,我得到的总数是两倍 我试过这段代码(这段代码是从一个有着几乎完全相同问题的人的不同帖子上截取的),但我认为它甚至没有运行。我猜我对这里应该发生什么的理解有很大差距Acumatica 使用操作\复制顺序时重置自定义总和字段的值,acumatica,Acumatica,我有两个自定义摘要字段,用于计算总计。看起来这些行的总和是正确的,但是Acumatica并不是每次都重新计算总和,而是改变它,当我复制时,我得到的总数是两倍 我试过这段代码(这段代码是从一个有着几乎完全相同问题的人的不同帖子上截取的),但我认为它甚至没有运行。我猜我对这里应该发生什么的理解有很大差距 public delegate void CopyOrderProcDel(SOOrder order, CopyParamFilter copyFilter); [PXOve
public delegate void CopyOrderProcDel(SOOrder order, CopyParamFilter copyFilter);
[PXOverride]
public void CopyOrderProc(SOOrder order, CopyParamFilter copyFilter, CopyOrderProcDel del)
{
Base.RowSelecting.AddHandler<SOOrder>((sender, e) =>
{
if (e.Row == null) return;
SOOrderExt orderExt = sender.GetExtension<SOOrderExt>(e.Row);
orderExt.UsrSpeedyTotalCost = 0m;
orderExt.UsrSpeedyTotalExt2 = 0m;
});
del(order, copyFilter);
public委托void CopyOrderProcDel(SOOrder order,CopyParamFilter copyFilter);
[PXOverride]
public void CopyOrderProc(SOOrder order、CopyParamFilter、copyFilter、CopyOrderProcDel)
{
Base.RowSelecting.AddHandler((发送方,e)=>
{
if(e.Row==null)返回;
soorderextorderext=sender.GetExtension(e.Row);
orderExt.UsrSpeedyTotalCost=0m;
orderExt.UsrSpeedyTotalExt2=0m;
});
del(订单、copyFilter);
值得一提的是,我创建了一个带有操作按钮的菜单,可以修复摘要字段,但对于用户来说,这是一个非常笨拙的解决方案
提前感谢。如果您只想重置自定义字段,请按此方法执行
public delegate void CopyOrderProcDelegate(SOOrder sourceOrder, CopyParamFilter copyFilter);
[PXOverride]
public void CopyOrderProc(SOOrder sourceOrder, CopyParamFilter copyFilter, CopyOrderProcDelegate baseMethod)
{
baseMethod(sourceOrder,copyFilter);
SOOrderExt orderExt = Base.Document.Current.GetExtension<SOOrderExt>();
orderExt.UsrSpeedyTotalCost = 0m;
orderExt.UsrSpeedyTotalExt2 = 0m;
}
公共委托无效CopyOrderProcDelegate(SOOrder sourceOrder,CopyParamFilter copyFilter);
[PXOverride]
public void CopyOrderProc(SOOrder sourceOrder、CopyParamFilter、copyFilter、CopyOrderProcDelegate baseMethod)
{
baseMethod(sourceOrder、copyFilter);
soorderextorderext=Base.Document.Current.GetExtension();
orderExt.UsrSpeedyTotalCost=0m;
orderExt.UsrSpeedyTotalExt2=0m;
}
查看如何通过在CopyOrderPRoc中添加处理程序来覆盖行更新/ed。将值设置为零,然后在以后插入行时应计算值。此外,如果需要,还可以使用一个属性“IsCopyOrder”我想我很困惑,因为我认为这正是我对代码所做的,但它似乎什么也没做。