要在Acumatica的采购订单界面中复制一行,可以使用以下代码示例:
using PX.Data;
using PX.Objects.PO;
public class POOrderEntry_Extension : PXGraphExtension
{
public PXAction CopyLine;
[PXButton]
[PXUIField(DisplayName = "Copy Line", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
protected void copyLine()
{
POOrder order = Base.Document.Current;
POLine line = Base.Transactions.Current;
if (order != null && line != null)
{
POLine newLine = PXCache.CreateCopy(line);
newLine.LineNbr = null;
newLine.OrderQty = 0;
newLine.CuryExtCost = 0;
newLine = Base.Transactions.Insert(newLine);
}
}
}
这个示例代码是一个Acumatica的图形扩展(graph extension),它扩展了POOrderEntry
图形。在这个示例中,我们添加了一个名为CopyLine
的动作(action),当用户点击该按钮时,会复制当前选中的行。在copyLine
方法中,我们首先获取当前的采购订单和采购订单行。然后,我们使用PXCache
的CreateCopy
方法创建一个行的副本。我们将行的LineNbr
设置为null,以便系统为我们自动分配一个新的行号。我们还将OrderQty
和CuryExtCost
设置为0,以便用户可以修改这些值。最后,我们使用Base.Transactions.Insert
方法将新行插入到采购订单中。
要将这个图形扩展添加到Acumatica中,请执行以下步骤:
Customization Project
,或者创建一个新的自定义项目。POOrderEntry_Extension
。一旦完成上述步骤,您将在Acumatica的采购订单界面上看到一个名为Copy Line
的按钮。当您选择一行并点击该按钮时,将复制选择的行并将其插入到订单中。