Acumatica 对非绑定用户字段进行筛选将返回零结果

Acumatica 对非绑定用户字段进行筛选将返回零结果,acumatica,Acumatica,我对“银行存款”屏幕上使用的“将付款添加到存款”弹出屏幕进行了自定义。我需要回过头来获取日记账凭证记录的BatNbr,以便可以在该字段上过滤要添加的付款。RowSelected事件工作正常,并返回BatNbr-但只要您对该字段进行筛选,我总是得到零结果。按此字段以任何方式进行筛选始终返回零结果 我已经使用了我认为正确的使用PXConnectionScope的技术,但这似乎也没有任何区别。我以前有一个支持案例,它解决了问题,但在这里没有帮助。我还尝试使用如图所示的PXScalar属性,但这也不起作

我对“银行存款”屏幕上使用的“将付款添加到存款”弹出屏幕进行了自定义。我需要回过头来获取日记账凭证记录的BatNbr,以便可以在该字段上过滤要添加的付款。RowSelected事件工作正常,并返回BatNbr-但只要您对该字段进行筛选,我总是得到零结果。按此字段以任何方式进行筛选始终返回零结果

我已经使用了我认为正确的使用PXConnectionScope的技术,但这似乎也没有任何区别。我以前有一个支持案例,它解决了问题,但在这里没有帮助。我还尝试使用如图所示的PXScalar属性,但这也不起作用

这是我的密码:

用户字段的DAC扩展:

public class PaymentInfoExt : PXCacheExtension<PaymentInfo>
{
    #region UsrBatchNbr
    public abstract class usrBatchNbr : IBqlField { }
    [PXString(15, IsUnicode = true)]
    [PXUIField(DisplayName = "JV Batch Nbr*")]
    //[PXDBScalar(typeof(Search<GLTranDoc.batchNbr,
    //                   Where<GLTranDoc.refNbr, Equal<PaymentInfo.refNbr>,
    //                   And<GLTranDoc.tranModule, Equal<Constants.aR>>>>>))]
    public virtual string UsrBatchNbr { get; set; }
    #endregion
}
在图形扩展中:

*注意-如果尝试使用RowSelecting事件,则不会得到任何结果。只有RowSelected事件返回结果

    public virtual void PaymentInfo_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
    {
        var pi = e.Row as PaymentInfo;
        if (pi != null)
        {
            //select Refnbr from GLTranDoc where CompanyID = '' and BatchNBR = '' and TranModule = 'AR'
            using (new PXConnectionScope())
            {
                var gltd = (GLTranDoc)PXSelect<GLTranDoc,
                                  Where<GLTranDoc.refNbr, Equal<Required<GLTranDoc.refNbr>>,
                                  And<GLTranDoc.tranModule, Equal<Constants.aR>>>>.Select(Base, pi.RefNbr);


                if (gltd != null)
                {

                    var piext = PXCache<PaymentInfo>.GetExtension<PaymentInfoExt>(pi);
                    if (piext != null)
                    {
                        piext.UsrBatchNbr = gltd.BatchNbr;
                    }
                }
            }
        }
    }

我没有看到使用过滤器值的实际代码,因此可能存在错误。还要确保调试使用它的值。您可以使用跟踪或其他机制,但您应该在使用该筛选值时对其进行调试,以确保其在该上下文中不为null。代码中也有许多条件,因此,除非您正确调试,否则该字段很可能未按您认为的那样初始化。具有仅返回常数的FieldSelecting事件,如e.ReturnValue=Test;将消除条件阻止初始化的可能性。谢谢Hugues-我确实从Acumatica支持部门得到了答案。我会把它贴在这里。