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
如果您要在 itemNames
和 itemValues
段中传递多个值,您应该用 ','
分隔它们,如下所示:
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_line
、Other_item
和 Another_item
,在本例中)并包含这些项目在生成交互式报告的 SQL 查询中。这样,在页面加载时,您传递的数据将提供给您的项目,并且在生成交互式报告时将考虑这些值。
另一方面,如果您想将值直接传递给您的交互式报表 (IR),那么您可以编写URL 在以下语法中,代替上面提到的 URL:
的 itemNames:itemValues
部分
IR_COLUMN1,IR_COLUMN2:EQ_VALUE1,EQ_VALUE2
在 COLUMN1
和 COLUMN2
中写入 IR 列的名称,在 EQ_VALUE1
和 EQ_VALUE2
处写入值您希望相应的列等于。
例如,如果您希望您的条件类似于 where streetname = 'A' and number = 1
,您可以编写以下内容(基于您应用的应用 ID、页码和一些会话):
/pls/apex/f?p=100:1:123456::::IR_STREETNAME,IR_NUMBER:A,1
稍微更改语法,您可以将条件从 equal
更改为 greater than
或 less 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
有没有办法通过 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
如果您要在 itemNames
和 itemValues
段中传递多个值,您应该用 ','
分隔它们,如下所示:
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_line
、Other_item
和 Another_item
,在本例中)并包含这些项目在生成交互式报告的 SQL 查询中。这样,在页面加载时,您传递的数据将提供给您的项目,并且在生成交互式报告时将考虑这些值。
另一方面,如果您想将值直接传递给您的交互式报表 (IR),那么您可以编写URL 在以下语法中,代替上面提到的 URL:
的itemNames:itemValues
部分
IR_COLUMN1,IR_COLUMN2:EQ_VALUE1,EQ_VALUE2
在 COLUMN1
和 COLUMN2
中写入 IR 列的名称,在 EQ_VALUE1
和 EQ_VALUE2
处写入值您希望相应的列等于。
例如,如果您希望您的条件类似于 where streetname = 'A' and number = 1
,您可以编写以下内容(基于您应用的应用 ID、页码和一些会话):
/pls/apex/f?p=100:1:123456::::IR_STREETNAME,IR_NUMBER:A,1
稍微更改语法,您可以将条件从 equal
更改为 greater than
或 less 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