BO XI 3.1值列表提示项目描述返回项目键

时间:2014-03-05 08:45:27

标签: business-objects

我正在尝试使用Universe Designer定义LOV,当在@Prompt中使用时,向用户显示项目描述,但在用户选择的结果中返回相应的项目键。

e.g。从包含两列(作为COUNTRY_ISO和COUNTRY_NAME)的国家/地区的维度表中,我想向使用@prompt的用户显示COUNTRY_NAME值,但返回相应的COUNTRY_ISO作为@prompt的返回值。

1 个答案:

答案 0 :(得分:0)

使用索引感知可以实现。我将使用“Island Resorts Marketing”示例来描述解决方案,但该概念应该根据您的具体需求进行描述。

对于此示例,我们将在“Resort”类中的“Country”对象上创建提示。提示符将显示国家/地区名称,但条件将应用于country_id字段。

首先,我们需要确定密钥。在Resort \ Country对象的标签上,使用Resort_Country.country_id作为来源添加新的主键:

enter image description here

(在您的情况下,您将在COUNTRY_NAME对象上执行此操作,使用COUNTRY_ISO作为主键)

接下来,我们创建包含提示的预定义条件。创建一个名为“选择国家/地区”的新预定义条件,其定义如下:

Resort_Country.country_id = @Prompt('Choose a country','A','Resort\Country',Mono,primary_key)

我们正在做的是将条件应用于ID字段(resort_country.country_id),但使用国家/地区名称Country对象)作为来源。注意“primary_key”参数 - 这告诉BO使用引用对象的PK。

现在进行测试。创建WebI报告并选择“选择国家/地区”过滤器以及要显示的字段。我选择了服务热线:

enter image description here

我运行报告并看到国家/地区名称列表。我选择了法国,并获得了与法国相关的服务项目清单。反映我的提示选择的此查询生成的SQL是:

SELECT
  Service_Line.service_line
FROM
  Service_Line,
  Country  Resort_Country,
  Resort
WHERE
  ( Resort_Country.country_id=Resort.country_id  )
  AND  ( Resort.resort_id=Service_Line.resort_id  )
  AND  ( Resort_Country.country_id = 2  )

请注意最后一行,即使我选择了国家/地区名称“France”,也会显示使用ID应用条件。

参考文献:
  - XI3.1 Designer Guide @Prompt info,从第520页开始   - 关于索引意识的Dave's blog
  - Dave's blog关于索引意识和提示