Acumatica:从另一张图中插入POLine的问题

问题描述 投票:0回答:1

我有一个基于自定义DAC的自定义图,并且在此图的fieldUpdated事件中,我正在插入POLine。插入效果很好,并且该行显示在PO上,但是PO标头行总计未更新,并且没有PlanID分配给PO行。在PO订单输入屏幕上手动输入PO行时,PlanID和表头行总计值由图表分配/更新。

我的(摘要)代码如下:

public SelectFrom<POOrder>.View POView;
public SelectFrom<POLine>
      .Where<POLine.pONbr.IsEqual<
     POOrder.orderNbr.FromCurrent>>
     .View POLineView;

protected virtual void _(Events.FieldUpdated<PSCHOrder, PSCHOrder.pOOrderNbr> e)
        {

            if (e.NewValue != null && !string.IsNullOrEmpty((string)e.NewValue))
            {

                var sorder = PXSelect<POOrder, Where<POOrder.orderNbr, Equal<Required<POOrder.orderNbr>>>>.Select(this, e.NewValue);
                POView.Current = sorder;

                var line = new POLine();
                line.OrderNbr = e.NewValue;
                line.OrderQty = 1;
                line.TranDesc = "my desc";
                line.InventoryID = id; //code to lookup id not shown
                //Assign Some Custom Fields
                PXCache<POLine>.GetExtension<POLineExt>(line).UsrDoorCD = "xxx";
                PXCache<POLine>.GetExtension<POLineExt>(line).UsrDoorPoNbr = "yyy"
                PXCache<POLine>.GetExtension<POLineExt>(line).UsrJobName = "abc";
                //Insert Line
                savedLine = this.POLineView.Insert(line);

            }
}

这是不正确的设计还是我缺少什么?

java acumatica
1个回答
0
投票

这两个字段(lineTotal或PlanID)均不会自动计算。您将需要更新。否则,执行此操作的最佳方法是创建POOrderEntry的图形实例,并通过该图形的视图插入线。但是,在事件处理程序中创建图实例并不是一种好的做法。

© www.soinside.com 2019 - 2024. All rights reserved.