我正在尝试使用Universe Designer定义LOV,当在@Prompt中使用时,向用户显示项目描述,但在用户选择的结果中返回相应的项目键。
e.g。从包含两列(作为COUNTRY_ISO和COUNTRY_NAME)的国家/地区的维度表中,我想向使用@prompt的用户显示COUNTRY_NAME值,但返回相应的COUNTRY_ISO作为@prompt的返回值。
答案 0 :(得分:0)
使用索引感知可以实现。我将使用“Island Resorts Marketing”示例来描述解决方案,但该概念应该根据您的具体需求进行描述。
对于此示例,我们将在“Resort”类中的“Country”对象上创建提示。提示符将显示国家/地区名称,但条件将应用于country_id字段。
首先,我们需要确定密钥。在Resort \ Country对象的键标签上,使用Resort_Country.country_id
作为来源添加新的主键:
(在您的情况下,您将在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报告并选择“选择国家/地区”过滤器以及要显示的字段。我选择了服务热线:
我运行报告并看到国家/地区名称列表。我选择了法国,并获得了与法国相关的服务项目清单。反映我的提示选择的此查询生成的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关于索引意识和提示