Acumatica 自定义流程发货从 PO 收据添加分支字段
Acumatica Customize Process Shipments Add branch field from PO Receipts
我正在尝试确定是否可以在 select 编辑“准备直运发票”操作时向 PO 收据的“处理发货”屏幕上的网格添加字段。具体来说,我想添加 POReceipts.BranchID 字段。
我研究了源代码,我看到不同的 select 命令在哪里 运行 基于 selected 操作,但我不明白是什么驱动了网格以显示不同的列集。
我查看了自定义编辑器中的屏幕设计器,但没有看到不同的视图或任何其他内容,希望我只是遗漏了一些简单的东西。
谢谢
斯科特
我就是这样解开你的谜团的。首先为 SOShipment 创建一个用户字段。
#region UsrReceiptBranchID
[PXInt]
[PXUIField(DisplayName="Receipt Branch ID")]
[GL.Branch()]
public virtual int? UsrReceiptBranchID { get; set; }
public abstract class usrReceiptBranchID : PX.Data.BQL.BqlInt.Field<usrReceiptBranchID> { }
#endregion
接下来是关键部分。当过滤器为 Drop-Ship 时,我扩展了数据视图委托,并添加了一个额外的查询来拉取 POReceipt 分支。
public virtual IEnumerable orders()
{
List<SOShipment> records = Base.orders().RowCast<SOShipment>().ToList();
if (Base.Filter.Current.Action.Contains("Drop"))
{
foreach (SOShipment sOShipment in records)
{
POReceipt receipt = PXSelect<POReceipt,
Where<POReceipt.receiptNbr,
Equal<Required<POReceipt.receiptNbr>>>>.Select(Base, sOShipment.ShipmentNbr);
if (receipt != null)
{
SOShipmentExt shipExt = PXCache<SOShipment>.GetExtension<SOShipmentExt>(sOShipment);
shipExt.UsrReceiptBranchID = receipt.BranchID;
}
}
return records;
}
else
{
return records;
}
}
我正在尝试确定是否可以在 select 编辑“准备直运发票”操作时向 PO 收据的“处理发货”屏幕上的网格添加字段。具体来说,我想添加 POReceipts.BranchID 字段。
我研究了源代码,我看到不同的 select 命令在哪里 运行 基于 selected 操作,但我不明白是什么驱动了网格以显示不同的列集。
我查看了自定义编辑器中的屏幕设计器,但没有看到不同的视图或任何其他内容,希望我只是遗漏了一些简单的东西。
谢谢 斯科特
我就是这样解开你的谜团的。首先为 SOShipment 创建一个用户字段。
#region UsrReceiptBranchID
[PXInt]
[PXUIField(DisplayName="Receipt Branch ID")]
[GL.Branch()]
public virtual int? UsrReceiptBranchID { get; set; }
public abstract class usrReceiptBranchID : PX.Data.BQL.BqlInt.Field<usrReceiptBranchID> { }
#endregion
接下来是关键部分。当过滤器为 Drop-Ship 时,我扩展了数据视图委托,并添加了一个额外的查询来拉取 POReceipt 分支。
public virtual IEnumerable orders()
{
List<SOShipment> records = Base.orders().RowCast<SOShipment>().ToList();
if (Base.Filter.Current.Action.Contains("Drop"))
{
foreach (SOShipment sOShipment in records)
{
POReceipt receipt = PXSelect<POReceipt,
Where<POReceipt.receiptNbr,
Equal<Required<POReceipt.receiptNbr>>>>.Select(Base, sOShipment.ShipmentNbr);
if (receipt != null)
{
SOShipmentExt shipExt = PXCache<SOShipment>.GetExtension<SOShipmentExt>(sOShipment);
shipExt.UsrReceiptBranchID = receipt.BranchID;
}
}
return records;
}
else
{
return records;
}
}