在 PMQuoteMaint 中覆盖 CopyToQuote

Override CopyToQuote in PMQuoteMaint

我试图重写 PMQuoteMaint 中的 CopyToQuote 方法,但是当我加载屏幕时,我收到一条错误消息,指出未找到具有该签名的方法。我在 PMQuoteMaint 中验证了该方法是 public 并且我的方法签名匹配。我觉得我错过了一些明显的东西,但我对不起作用的东西感到茫然。这是我的代码:

    public delegate void CopyToQuoteDelegate(PMQuote currentquote, PMQuoteMaint.CopyQuoteFilter param);
    [PXOverride]
    public void CopyToQuote(PMQuote currentquote, PMQuoteMaint.CopyQuoteFilter param, CopyToQuoteDelegate baseMethod)
    {
        //My Code here
        baseMethod(currentquote, param);
    }

在此先感谢您的帮助!

在项目报价屏幕 (PM304500) 中,您可以 extend/override 操作 "Copy Quote"。 操作 returns 一个枚举器,并接受 PXAdapter 作为输入参数。 在您的情况下,基础图 PMQuoteMaint 中的 "CopyToQuote" 方法未标记为虚拟,因此您无法覆盖它。如果您想更改基本行为,我建议覆盖操作,并添加您的自定义逻辑

    public delegate IEnumerable CopyQuoteDelegate(PXAdapter adapter);
    [PXOverride]
    public IEnumerable CopyQuote(PXAdapter adapter, CopyQuoteDelegate baseMethod)
    {
        // add your custom logic here
        // to override the base logic           

        return adapter.Get();  //just returns the enumerator
    }