PXScalar仅返回零

问题描述

尝试将标记为不可折扣的项目添加到APInvoice。我在InventoryItem DAC(Nondiscountable)上添加一个选中标记,现在正尝试创建未绑定字段来读取该标记并计算总数。我正在尝试使用DBScalar来完成此任务,但是它似乎不想工作,并且在屏幕上仅显示零。

代码

        public class APInvoice_Extension : PXCacheExtension<APInvoice>
        {
            #region CuryClientTotal
            [PXCurrency(typeof(APInvoice.curyInfoID),typeof(APInvoice_Extension.clientTotal))]
            [PXFormula(typeof(Sub<APInvoice_Extension.clientTotal,APInvoice.curydiscTot>))]
            [PXUIField(displayName = "Client Total")]
            public virtual Decimal? CuryClientTotal { get; set; }
            public abstract class curyClientTotal : PX.Data.IBqlField {}
            #endregion
    
            #region ClientTotal
            [PXDBScalar(typeof(
                Search5<
                APTran.tranAmt,LeftJoin<InventoryItem,On<InventoryItem.inventoryID,Equal<APTran.inventoryID>,And<InventoryItemExt.nondiscountable,Equal<True>>>>,Where<
                    APTran.tranType,Equal<Current<APInvoice.docType>>,And<APTran.refNbr,Equal<Current<APInvoice.refNbr>>,And<APTran.lineType,NotEqual<SOLineType.discount>,And<InventoryItem.inventoryID,IsNull>>>>,Aggregate<Sum<APTran.tranAmt>>>))]
            [PXUIField(displayName = "discountable Total")]
            [PXDecimal(4)]
            public virtual Decimal? ClientTotal { get; set; }
            public abstract class clientTotal : PX.Data.IBqlField { }
            #endregion
    }

我已经通过测试代码运行了查询(临时事件直接写入字段),并获得了正确的结果,但是当我在屏幕上包含[CuryClientTotal]时,它始终为零,并且拒绝更新。我在做什么错了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)