在APInvoice DAC上使用APRegisterExt

时间:2018-07-13 07:18:56

标签: acumatica

在这种情况下,“自定义字段”位于APRegisterExt DAC上。 而APInvoice是从APRegister继承的。

尽管我在做

APRegisterExt InvoiceDataExt = InvoiceData.GetExtension<APRegisterExt>();

在编译时没有错误,但是在运行时却给我错误

“ getItemExtension失败”

我只想在自定义字段上以编程方式设置一个值。

谢谢!

2 个答案:

答案 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>();

这个技巧对我有用。也谢谢您的建议! :)