如何自定义AP505200屏幕上的“处理”按钮。 Acumatica

时间:2018-10-25 17:51:05

标签: acumatica acumatica-kb

我应该使用哪种方法来自定义AP 505200屏幕上的“处理”按钮。 按下“处理”按钮时,我需要将记录记录在某个表中

非常感谢!

1 个答案:

答案 0 :(得分:1)

该方法使用处理数据视图的SetProcessDelegate方法映射到“处理/处理所有”操作。

首先找到AP505200屏幕的图形(APReleaseChecks): enter image description here

在“源代码”屏幕中搜索APReleaseChecks图并找到SetProcessDelegate方法: enter image description here

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
                // [...]
            });
        }
    }
}