我应该使用哪种方法来自定义AP 505200屏幕上的“处理”按钮。 按下“处理”按钮时,我需要将记录记录在某个表中
非常感谢!
答案 0 :(得分:1)
该方法使用处理数据视图的SetProcessDelegate方法映射到“处理/处理所有”操作。
首先找到AP505200屏幕的图形(APReleaseChecks):
在“源代码”屏幕中搜索APReleaseChecks图并找到SetProcessDelegate方法:
APPaymentList.SetProcessDelegate(list => ReleasePayments(list, action));
流程委托ReleasePayments方法是静态的,因此您无法轻松覆盖它。 尝试使用SetProcessDelegate来调用您自己的流程委托,该委托将依次调用基础委托。
public class APReleaseChecks_Extension : PXGraphExtension<APReleaseChecks>
{
public virtual void ReleaseChecksFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
ReleaseChecksFilter filter = e.Row as ReleaseChecksFilter;
if (filter != null)
{
Base.APPaymentList.SetProcessDelegate(delegate (List<APPayment> list)
{
// Do processing on list items before base process delegate
// [...]
// Call base process delegate
APReleaseChecks.ReleasePayments(list, filter.Action);
// Do processing on list items after base process delegate
// [...]
});
}
}
}