Acumatica - 带有三个“ands”的BQL查询

问题描述 投票:0回答:1

有人能告诉我我的BQL查询有什么问题吗?到处都是VS的流血。不明白为什么Acumatica的开发人员决定采用这种笨拙的查询语言。

                var oldRec = PXSelectReadonly<SOLine, 
                                    Where<SOLine.orderType, Equal<Required<SOLine.origOrderType>>, 
                                    And<SOLine.orderNbr, Equal<Required<SOLine.origOrderNbr>>, 
                                    And<SOLine.lineNbr, Equal<Required<SOLine.origLineNbr>>>>>.Select(Base, orderLine.OrigOrderType, orderLine.OrigOrderNbr, orderLine.OrigLineNbr);
acumatica
1个回答
0
投票

看来你最后错过了一个结束括号'>'。

在任何情况下,这应该是非常明智的语法:

PX.Objects.SO.SOLine orderLine = new PX.Objects.SO.SOLine();

var oldRec = PXSelectReadonly<PX.Objects.SO.SOLine,
                Where<PX.Objects.SO.SOLine.orderType, Equal<Required<PX.Objects.SO.SOLine.origOrderType>>, 
                And<PX.Objects.SO.SOLine.orderNbr, Equal<Required<PX.Objects.SO.SOLine.origOrderNbr>>, 
                And<PX.Objects.SO.SOLine.lineNbr, Equal<Required<PX.Objects.SO.SOLine.origLineNbr>>>>>>.Select(Base, orderLine.OrigOrderType, orderLine.OrigOrderNbr, orderLine.OrigLineNbr);

在图形扩展“PXGraphExtension”中使用时,您可以将“Base”指定为第一个参数,就像您所做的那样。 Base是指基本图,你使用'Base',因为第一个参数类型是PXGraph而不是PXGraphExtension。

在图形'PXGraph'中使用时,您使用'this'而不是base。

© www.soinside.com 2019 - 2024. All rights reserved.