0

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

提前谢谢了!

4

1 回答 1

1

使用处理数据视图的 SetProcessDelegate 方法将该方法映射到 Process/Process All 操作。

首先找到 AP505200 屏幕的 Graph (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
                // [...]
            });
        }
    }
}
于 2018-10-25T18:32:16.293 回答