ORDA:如何根据字段值查询字段值?

ORDA: How can I query field value against a field value?

背景

我正在将旧的 4D 代码从 class 查询转换为 ORDA queries。我无法弄清楚的一件事是如何使用字段与字段进行查询,而不是使用字段与值进行查询。

编辑:我使用的是 4D v17.4。

例子

经典:

Query([Customers];[Customers]State="IN")

奥达:

ds.Customers.query("State = 'IN'")

目标

我希望能够在 table 中查询我比较一个字段值与另一个字段值的结果。我可以通过以下方式在 classic 查询中做到这一点:

Query([Customers];[Customers]State#[Customers]AdministrativeRegion)

我试过的

ds.Customers.query("State # AdministrativeRegion") // DOESN'T WORK

问题

这可能吗?

您没有提到您使用的是哪个版本的 4D。现在 4D 变化非常快,它们之间的差异确实很重要,但在这种情况下并没有那么大。

第一步是在查询字符串中使用占位符。

而不是 ds.Customers.query("State # AdministrativeRegion")

ds.Customers.query("State # :1 ";"some value")

每个占位符都由从 1 开始的 :n 语法引用。这是一个很大的好处,因为 4D 将管理转换比较值数据类型。这也是在实体、对象、公式等中引用值的关键

$entity_selection:=ds.Customers.query("State # :1";$entity.State)

其中 $entity 是您要与之比较的对象。