Acumatica 如何统计相关表中的记录并允许用户覆盖

Acumatica 如何统计相关表中的记录并允许用户覆盖,acumatica,Acumatica,我在CRActivity表上有一个自定义字段,需要在其中存储相关表中的记录数。我试图将该字段设置为屏幕CR306030打开时的值。用户需要能够覆盖计算出的数字,因此,我认为我需要在计算中使用逻辑来检查自定义字段是否>0,在这种情况下,不要填充自定义字段,并假设它已设置 以前,我曾尝试在选择事件的字段中执行此操作,但不起作用。我想我可能可以使用PXFormula属性。有什么建议吗 我尝试创建一个接近的自定义属性,但它不会将值保存到数据库中。保存按钮启用,我可以单击它,它看起来像是保存了,但没有骰子

我在CRActivity表上有一个自定义字段,需要在其中存储相关表中的记录数。我试图将该字段设置为屏幕CR306030打开时的值。用户需要能够覆盖计算出的数字,因此,我认为我需要在计算中使用逻辑来检查自定义字段是否>0,在这种情况下,不要填充自定义字段,并假设它已设置

以前,我曾尝试在选择事件的字段中执行此操作,但不起作用。我想我可能可以使用PXFormula属性。有什么建议吗

我尝试创建一个接近的自定义属性,但它不会将值保存到数据库中。保存按钮启用,我可以单击它,它看起来像是保存了,但没有骰子。一些平凡的细节,我相信

以下是我的自定义属性:

public class CFCountIfZeroAttribute : PXIntAttribute
{
    public override void FieldSelecting(PXCache cache, PXFieldSelectingEventArgs e)
    {
        if (e.Row == null)
            return;

        CRActivity activity = (CRActivity)e.Row;
        CRActivityExt activityExt = activity.GetExtension<CRActivityExt>();
        if (activityExt.usrCustomField <= 0)
        {
                int aggregateValue = BQLToFind();
                e.ReturnValue = aggregateValue;
                cache.SetValue<CRActivityExt.usrCustomField>(e.Row, aggregateValue);
                cache.IsDirty = true;

        }
    }


}
公共类CFCountIfZeroAttribute:PXIntAttribute
{
公共覆盖无效字段选择(PXCache缓存,PXFieldSelectingEventArgs e)
{
如果(e.Row==null)
回来
CRActivity activity=(CRActivity)e.Row;
CRActivityExt activityExt=activity.GetExtension();

如果(activityExt.usrCustomField我认为我从未在PXFormula中进行过计数,但是如果您创建了一个自定义属性呢

[DBUIInt()]
[EditableCount()]
public virtual int? CountField


这是我脑子里想不到的。如果你想在其他地方这样做,你可以将你正在计算的字段传递到属性中。

谢谢你的想法。我现在确实需要在两个屏幕上进行聚合,因此,我自定义属性是绝对可行的方法,但是,我无法获得保存到db的值。我将代码放在了我的原始帖子中。
public class EditableCountAttribute
{
    public override void FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
    {
        if (e.Row != null)
        {
            //if CountField is 0, lookup the count from another table
        }
    }
}