Acumatica 在一般查询条件中使用非持久字段

Acumatica 在一般查询条件中使用非持久字段,acumatica,Acumatica,我正在建立一个通用查询,该查询将列出带有FixedRecurringPriceVal和UsrCustomFixedRecurringPriceVal的合同细节。后者是一个自定义的持久字段。现在,在这个一般查询中,我只想列出客户合同中具有不同FixedRecurringPriceVal和UsrCustomFixedRecurringPriceVal的合同细节 但是,我可以在结果网格中使用FixedRecurringPriceVal,在需要比较这些字段的情况下,似乎无法使用此字段 在查看数据字段源时

我正在建立一个通用查询,该查询将列出带有FixedRecurringPriceVal和UsrCustomFixedRecurringPriceVal的合同细节。后者是一个自定义的持久字段。现在,在这个一般查询中,我只想列出客户合同中具有不同FixedRecurringPriceVal和UsrCustomFixedRecurringPriceVal的合同细节

但是,我可以在结果网格中使用FixedRecurringPriceVal,在需要比较这些字段的情况下,似乎无法使用此字段

在查看数据字段源时,我发现了这一点

        [PXDecimal(6)]
        [PXFormula(typeof(GetItemPriceValue<
            ContractDetail.contractID, 
            ContractDetail.contractItemID, 
            ContractDetailType.ContractDetail, 
            ContractDetail.fixedRecurringPriceOption, 
            Selector<ContractDetail.contractItemID, ContractItem.recurringItemID>, 
            ContractDetail.fixedRecurringPrice, 
            ContractDetail.basePriceVal,
            ContractDetail.qty,
            Switch<
                Case<Where<Parent<Contract.status>, Equal<Contract.status.draft>,
                    Or<Parent<Contract.status>, Equal<Contract.status.pendingActivation>>>,
                    IsNull<Parent<Contract.activationDate>, Parent<Contract.startDate>>,
                Case<Where<Parent<Contract.status>, Equal<Contract.status.active>,
                    Or<Parent<Contract.status>, Equal<Contract.status.inUpgrade>>>,
                    IsNull<Parent<ContractBillingSchedule.nextDate>, Current<AccessInfo.businessDate>>, 
                Case<Where<Parent<Contract.status>, Equal<Contract.status.expired>>, 
                    IsNull<Parent<ContractBillingSchedule.nextDate>, Parent<Contract.expireDate>>,
                Case<Where<Parent<Contract.status>, Equal<Contract.status.canceled>>,
                    IsNull<Parent<Contract.terminationDate>, Current<AccessInfo.businessDate>>>>>>,
                Current<AccessInfo.businessDate>>>))]
        [PXUIField(DisplayName = "Recurring Price")]
        public decimal? FixedRecurringPriceVal
        {
            get;
            set;
        }
[PXDecimal(6)]
[PX公式(类型)(GetItemPriceValue<
合同细节,
ContractDetail.contractItemID,
ContractDetailType.ContractDetail,
ContractDetail.fixedRecurringPriceOption,
选择器,
合同细节。固定的固定价格,
ContractDetail.basePriceVal,
合同详细信息数量,
开关<
案例
当前>>)]
[PXUIField(DisplayName=“定期价格”)]
公共小数?固定的固定价格
{
得到;
设置
}
所以,对我来说,非持久性字段似乎不能用于一般查询条件。我做了一点谷歌搜索,但找不到任何解决方案,也查看了S130数据检索和分析,找不到这种情况的具体解决方案

我们有没有办法做到这一点


谢谢。

不,您不能在条件中使用非持久性字段。
“字段”下拉列表故意将其排除在外。下面是正在加载下拉列表的GenericInquiryDesigner图中的FieldSelecting事件处理程序

    protected void GIWhere_DataFieldName_FieldSelecting(PXCache cache, PXFieldSelectingEventArgs e)
    {
        string[] allParameters = this.GetAllParameters(true);
        PXStringListAttribute.SetList(cache, e.Row, typeof(GIWhere.dataFieldName).Name, allParameters, allParameters);
        this.a<GIWhere.dataFieldName>(cache, e.Row, true, (PXCache c, string f) => !PXGenericInqGrph.IsVirtualField(c, f, null));
    }
protected void GIWhere\u DataFieldName\u fieldselection(PXCache缓存,PXFieldSelectingEventArgs e)
{
字符串[]allParameters=this.GetAllParameters(true);
pxstringlisttribute.SetList(缓存,例如行,typeof(GIWhere.dataFieldName).Name,allParameters,allParameters);
this.a(缓存,e.Row,true,(PXCache c,string f)=>!PXGenericInqGrph.IsVirtualField(c,f,null));
}

在这种情况下,唯一的方法是创建一个单独的页面,而不是GI。

谢谢。很高兴知道,不确定我是否在文档中遗漏了这一点。