如何在 Openbravo 的定义选择器中添加不同的过滤器表达式?

How to add distinct to filter expression in Defined Selector in Openbravo?

我现在使用的过滤表达式是,

"e.contract= '" +OB.getParameters().get('subscriptionId') + "'"

这里,e 是当前 table 填充在 'Table' 中,contract 是那里的列(在 POJO class 中),它存储 subscriptionId 的值。

问题是下一级定义的选择器字段中的属性,我显示某列 exColumn 有许多行[从上面的表达式中选择]具有相同的值。

在这里,我打算在过滤器表达式或 HQL [运行 时间似乎没有过滤] 或定义的选择器字段中添加一个不同的,这样我们就不会t 显示重复值。

您不能在用于限制数据源结果的过滤器表达式中添加 distinct

您有 2 个不同的选择:

  1. 根据自定义查询定义选择器,并在其中写入 HQL 以检索值。在这个查询中你可以有 distinct。例如,您可以检查 Business Partner not filtered by customer/vendor 选择器,它是以这种方式实现的。
  2. 将您的选择器基于视图中的 Table:
    • 使用您需要的基本 SQL 查询创建数据库视图,包括 distinct.
    • 将其注册为应用词典Table
    • 选择器基于它