Acumatica 如何自定义AP505200屏幕上的过程按钮。针灸

Acumatica 如何自定义AP505200屏幕上的过程按钮。针灸,acumatica,acumatica-kb,Acumatica,Acumatica Kb,我应该使用什么方法自定义AP 505200屏幕上的“流程”按钮。 当我按下进程按钮时,我需要在某个表中记录记录 非常感谢 该方法使用处理数据视图的SetProcessDelegate方法映射到流程/处理所有操作 首先找到AP505200屏幕的图形(APReleaseChecks): 在“源代码”屏幕中,搜索APReleaseChecks图形并找到SetProcessDelegate方法: process delegate ReleasePayments方法是静态的,因此您无法轻松覆盖它。 尝

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


非常感谢

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

首先找到AP505200屏幕的图形(APReleaseChecks):

在“源代码”屏幕中,搜索APReleaseChecks图形并找到SetProcessDelegate方法:

process delegate 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
                // [...]
            });
        }
    }
}
public类APReleaseChecks\u扩展名:pxGrapherExtension
{
公共虚拟无效释放检查过滤器选中(PXCache发件人,PXRowselectedEventTarget e)
{
ReleaseChecksFilter=e.行作为ReleaseChecksFilter;
if(过滤器!=null)
{
Base.APPaymentList.SetProcessDelegate(委托(列表)
{
//在基本流程委派之前对列表项执行处理
// [...]
//调用基本进程委托
APReleaseChecks.ReleasePayments(列表、筛选、操作);
//在基本流程委派之后对列表项执行处理
// [...]
});
}
}
}
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
                // [...]
            });
        }
    }
}