我试图覆盖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)中,可以扩展覆盖Action "Copy Quote".该动作返回一个枚举器,并接受PXAdapter作为输入参数.在你的情况下,"CopyToQuote "方法在基础图中 PMQuoteMaint,没有标记为虚拟,所以你不能覆盖它。 如果你想改变基本行为,我建议你覆盖Action,并添加你的自定义逻辑。
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
}