Oracle APEX IR - 通过 url 的多个过滤器

Oracle APEX IR - pass several filters with url

有没有办法通过 URL 将多个过滤器传递给交互式报表?

对于一个过滤器,它的工作原理是这样的:

/pls/apex/f?p=100:1:123456::::IRC_line:0

一般规则

在 link 页面上使用 f?p 的语法是:

f?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly

如果您要在 itemNamesitemValues 段中传递多个值,您应该用 ',' 分隔它们,如下所示:

f?p=App:Page:Session:Request:Debug:ClearCache:item1_Name,item2_Name,item3_Name:item1_Value,item2_Value,item3_Value:PrinterFriendly

你的例子

要在目标页面上填充顶部项目:

/pls/apex/f?p=100:1:123456::::IRC_line,Other_item,Another_item:0,0,0

如果它们尚不存在,则您必须在目标页面上创建这些项目(IRC_lineOther_itemAnother_item,在本例中)并包含这些项目在生成交互式报告的 SQL 查询中。这样,在页面加载时,您传递的数据将提供给您的项目,并且在生成交互式报告时将考虑这些值。

另一方面,如果您想将值直接传递给您的交互式报表 (IR),那么您可以编写URL 在以下语法中,代替上面提到的 URL:

itemNames:itemValues 部分
IR_COLUMN1,IR_COLUMN2:EQ_VALUE1,EQ_VALUE2

COLUMN1COLUMN2 中写入 IR 列的名称,在 EQ_VALUE1EQ_VALUE2 处写入值您希望相应的列等于。

例如,如果您希望您的条件类似于 where streetname = 'A' and number = 1,您可以编写以下内容(基于您应用的应用 ID、页码和一些会话):

/pls/apex/f?p=100:1:123456::::IR_STREETNAME,IR_NUMBER:A,1

稍微更改语法,您可以将条件从 equal 更改为 greater thanless than,方法是将 IR_NUMBER 更改为 IRGT_NUMBER 当您希望您的条件为 number > 1 而不是 number = 1 或将 IR_NUMBER 更改为 IRLT_NUMBER 当您希望您的条件为 number < 1 而不是 number = 1, 分别.

您自己找到的相应文档:https://docs.oracle.com/database/121/HTMDB/bldapp_rpt_int.htm#HTMDB28370