要在Acumatica的“撤销余额和信用(AR505000)”屏幕上添加额外的筛选器,您需要使用自定义化来修改屏幕。
以下是一个示例代码,演示了如何在“撤销余额和信用(AR505000)”屏幕上添加一个额外的筛选器。在此示例中,我们将添加一个日期范围筛选器,以便用户可以选择要显示的特定日期范围。
using PX.Data;
using PX.Objects.AR;
namespace PX.Objects.AR
{
public class ARDocumentEnq_Extension : PXGraphExtension
{
#region Event Handlers
public PXFilter filter;
public delegate IEnumerable FilterDelegate();
[PXOverride]
public IEnumerable Filter(FilterDelegate baseMethod)
{
PX.SM.UserPreferences userPreferences = PXContext.GetSlot();
if (filter.Current != null && userPreferences != null && userPreferences.CalendarID.HasValue)
{
PXResultset resultset = baseMethod();
PXResultset filteredResultset = new PXResultset();
foreach (PXResult record in resultset)
{
ARDocumentEnq.ARInvoice invoice = record;
ARRegister register = record;
if (invoice.DocDate >= filter.Current.StartDate && invoice.DocDate <= filter.Current.EndDate)
{
filteredResultset.Add(new PXResult(invoice, register));
}
}
return filteredResultset;
}
return baseMethod();
}
#endregion
}
}
请注意,此示例代码是一个Acumatica扩展类,继承自PXGraphExtension
。通过在Filter
方法上使用PXOverride
属性,我们可以覆盖原始方法,并添加我们自己的逻辑来过滤结果。
在此示例中,我们检查了filter.Current.StartDate
和filter.Current.EndDate
的值,并使用这些值来过滤resultset
。只有当invoice.DocDate
位于指定的日期范围内时,我们才将记录添加到filteredResultset
中。
要使用此代码示例,请按照以下步骤操作:
完成上述步骤后,您将在“撤销余额和信用(AR505000)”屏幕上看到一个新的日期范围筛选器,您可以使用它来过滤要显示的记录。
请注意,此示例代码仅用于参考目的,并可能需要根据您的具体要求进行调整和定制。