将令牌从 ValueHelpDialog 转换为 SAPUI5 中的过滤器

Convert Token from ValueHelpDialog into Filters in SAPUI5

我正在使用具有范围支持的 ValueHelpDialog。因此,这些标记是根据选择和输入的值生成的。例如对于“contains”,会生成像 *abc* 这样的令牌,对于“equal to”,会生成 =abc。这些令牌可以通过单击 ValueHelpDialog 上的 OK 获取,如下所示。

我需要为这些选择创建一个 sap.ui.model.Filter。如何评估令牌以检索 FilterOperator 和要过滤的值?

请帮忙,谢谢!

您可以使用 data 函数从令牌中检索过滤器数据。

const oProperties = oToken.data("range");
/*
{
  exclude: false,
  operation: "Contains",
  keyField: "PROPERTY_PATH",
  value1: "abc",
  value2: null
}
*/

const oFilter = new Filter({
  path: oProperties.keyField,
  operator: FilterOperator[oProperties.operation],
  value1: oProperties.value1
});

我们可以直接获取运营商。按照以下步骤在 valuehelp 对话框上点击确定按钮即可获得它。

  1. oEvent.getParameters().tokens
  2. 展开上述步骤的结果并转到 maggregations->customdata