在这种情况下,“自定义字段”位于APRegisterExt DAC上。 而APInvoice是从APRegister继承的。
尽管我在做
APRegisterExt InvoiceDataExt = InvoiceData.GetExtension<APRegisterExt>();
在编译时没有错误,但是在运行时却给我错误
“ getItemExtension失败”
我只想在自定义字段上以编程方式设置一个值。
谢谢!
答案 0 :(得分:1)
这在某种程度上取决于您要覆盖的事件。 例如,如果您处于APTran_RowSelecting事件中,则将像这样拉入APTranExt:
public void APTran_RowSelecting(PXCache sender, PXRowSelectingEventArgs e)
{
APTran row = (APTran)e.Row;
if (row == null) return;
APTranExt ext = sender.GetExtension<APTranExt>(row);
}
或者说您在“ PO订单输入”屏幕中,并点击了POLine_RowSelected事件,但是您需要该行中库存物料的库存物料扩展值。您将执行以下操作:
// code to PXSelect the Inventory Item record
// and assign it to the inventoryitem var.
InventoryItemExt inventoryitemext = PXCache<InventoryItem>.GetExtension<InventoryItemExt>(inventoryitem);
其中一种模式适合您。
答案 1 :(得分:0)
经过数周的实验,
我找到了解决方法
我在图形中扩展了它。
在缓存中插入数据之后。
APRegisterExt GetAPExtension = APGraph.Document.Current.GetExtension<APRegisterExt>();
这个技巧对我有用。也谢谢您的建议! :)