2013-07-24 17 views
1

在BO XI 3.1中,是否可以创建一个条件对象来过滤多个表,而不会将所有这些表添加到查询中(如果它们尚不存在)?动态条件对象

例如,如果我有几个表都包含当前和历史数据,并且每个表都有一个标志来指示记录是当前还是历史 - 我可以创建一个单个“当前数据”条件:过滤器全部这样的表只能拉取当前数据?问题的关键是查询可能不是从所有这些表中选择的,我不希望包含条件来添加连接到我不选择的表。

换句话说,一个条件可以检查查询正在使用哪些表并仅在这些表上应用过滤器?

回答

0

您可以为每个表添加自限制连接,并使用@prompt函数询问是否返回当前数据或历史数据。如果对每个自限制连接中的所有提示使用相同的文本和相同的数据类型,则只会显示一次提示,并且只会应用于生成的查询中实际使用的表。

的自限制加入可能看起来像:

<table>.<history_flag> 
= @Prompt('Select current or historical data','A',{'C','H'}, Mono, constrained, , {'C'}) 

在上面的例子中,我们假设所述标志是字母数字柱(A)与值C或H({'C','H'})。用户只能从这两个值中选择(constrained),只能选择一个值(Mono)。默认选项设置为当前数据({'C'})。

查看@prompt语法的Universe Designer指南。自限制连接在相同的手册中解释。