问题描述: 在Acumatica中,我想从一个图表插入POLine(采购订单行),但是遇到了问题。我希望能够插入多个POLine,并且能够设置每个POLine的相关字段值。
解决方法: 下面是一个示例代码,展示了如何从另一个图表插入POLine并设置相关字段值:
using PX.Data;
using PX.Objects.PO;
public class MyGraph : PXGraph
{
public PXSave Save;
public PXCancel Cancel;
public PXInsert Insert;
public PXSelect Orders;
// 在这里定义一个委托,用于从另一个图表中获取POLine
public delegate IEnumerable GetPOLinesDelegate();
[PXOverride]
public IEnumerable GetPOLines(GetPOLinesDelegate baseMethod)
{
// 调用基方法来获取POLine
var polines = baseMethod();
// 创建一个新的POLine记录
var newPOLine = new POLine();
newPOLine.OrderType = "PO";
newPOLine.OrderNbr = "000001";
newPOLine.LineNbr = 1;
newPOLine.InventoryID = 1;
newPOLine.OrderQty = 10;
// 将新的POLine添加到结果列表中
var newPOLines = new List(polines.Cast()) { newPOLine };
return newPOLines;
}
}
在上述代码中,我们定义了一个名为MyGraph
的图表,并添加了一个委托GetPOLinesDelegate
,用于从另一个图表中获取POLine。在委托的实现中,我们首先调用了基方法来获取POLine,并创建了一个新的POLine记录,然后将其添加到结果列表中。
请注意,这只是一个示例代码,您需要根据实际需求进行修改和调整。您可能还需要在插入POLine之前进行其他验证和处理。