我想从SQL翻译
select * from table where table.field in('A','B')
Run Code Online (Sandbox Code Playgroud)
到Acumatica BQL.
请帮助我获取此信息.
有几种方法可以做到这一点:
1.使用In3/Or和BQL常量
首先,您需要创建表示"A"和"B"的BQL常量.像那样:
public class constantA: PX.Data.Constant<string>
{
public constantA() : base("A") { }
}
public class constantB: PX.Data.Constant<string>
{
public constantB() : base("B") { }
}
Run Code Online (Sandbox Code Playgroud)
这将允许您在BQL查询中使用A和B. (您可以找到有关,在T200的培训,例3.1详细信息:提供数据的查询页面)(你可以用PX.Data.Constant<int>,PX.Data.Constant<decimal>等,这取决于参数类型)
之后你可以编写BQL:
PXSelect<Table, Where<Table.field, In3<constantA, constantB>>>
Run Code Online (Sandbox Code Playgroud)
(或 PXSelect<Table, Where<Table.field, Equal<constantA>, Or<Table.field, Equal<constantB>>>>)
2.使用In和Required
PXSelect<Table, Where<Table.field, In<Required<Table.field>>>>.Select(graph, new string[]{"A","B"})
Run Code Online (Sandbox Code Playgroud)
这种方式允许您在运行时组合常量列表,并将其作为参数传递给查询.参数应该是相应类型的数组(在本例中是字符串数组).
| 归档时间: |
|
| 查看次数: |
1118 次 |
| 最近记录: |