BI Publisher RTF模板中的独立ELSE

时间:2018-10-11 17:56:40

标签: oracle rtf obiee bi-publisher

我了解到有一个IF-ELSE Statement in XML Publisher RTF Templates,类似于以下内容:

<?xdofx:if ELEMENT1='A' then 'The Letter is A' else 'The Letter is not A' end if?>

但是,我希望使用IF语句根据值显示不同的数据表。类似于下面的伪代码:

IF BUSINESS_GROUP IS BG-A THEN SHOW TABLE with COLUMNS A B and C, IF NOT, then SHOW TABLE with COLUMNS X Y and Z

我能够使用2条独立的IF语句来做到这一点:

<?xdofx:if BUSINESS_GROUP='A'> SHOW TABLE with COLUMNS A B and C <?end if?>

<?xdofx:if BUSINESS_GROUP!='A'> SHOW TABLE with COLUMNS X Y and Z <?end if?>

我希望我可以只使用<?ELSE?>之类的语句,但是它不起作用。

有什么提示吗?

3 个答案:

答案 0 :(得分:1)

是的,没有独立的“ else”块。根据您的要求,您将需要使用if表达式评估相反的条件。

Here列出了可以在BIP中使用if表达式的所有不同方式。

答案 1 :(得分:1)

正如@Peter Paff所指出的,<?choose:?>是一条不错的路线。可能有些“笨拙”,但是如果您需要添加更多条件,则似乎更容易理解。

针对您的特定条件,还有另一个(也许是“笨拙的”)选项:如果您引用的TABLE是一个表,而您只想根据条件显示/隐藏该表的某些列,则可以使用<?if@column:?>将这些条件添加到您希望显示(或隐藏)的每列(或一组列)中。

有关详细信息,请参见Oracle Fusion Middleware Report Designer's Guide for Oracle Business Intelligence Publisher 12.2.1.2.0 -> Creating RTF Templates -> Using Conditional Formatting-特别是有关格式化列的部分。

答案 2 :(得分:0)

以下内容满足您的功能要求,但这不是if else语句。

<?choose:?>
   <?when: BUSINESS_GROUP='A'?>
      SHOW TABLE with COLUMNS A B and C
   <?end when?>
   <?otherwise:?>
      SHOW TABLE with COLUMNS X Y and Z
   <?end otherwise?>
<?end choose?>

这类似于其他编程语言中的switch / case / evaluate语句。