0
votes

Is there a way to pass multiple filters to an Intractive Report via the URL?

For one filter it works like this:

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

1 Answers

3
votes

General rule

Syntax for using f?p to link pages is:

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

If you have more than one value that you want to pass in your itemNames and itemValues segments, you should separate them with ',' like this:

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

Your example

For filling apex items on your target page:

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

If they don't already exist,you must then create those items (IRC_line, Other_item and Another_item, for this example) on your target page and include those items in your SQL query that generates your interactive report. That way, on page load, data you passed will be given to your items and those values will be taken into account when your interactive report generates.

On the other hand, if you want to pass values directly to your Interactive report (IR), then you can write the URL in following syntax, in place of above mentioned itemNames:itemValues part of the URL:

IR_COLUMN1,IR_COLUMN2:EQ_VALUE1,EQ_VALUE2

where instead of COLUMN1 and COLUMN2 you write-in names of your IR columns, and in the place of EQ_VALUE1 and EQ_VALUE2 you write-in values you want your corresponding columns to be equal to.

For example, if you want your condition to be like where streetname = 'A' and number = 1, you would write the following (built upon your app's app ID, page number and some session):

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

With a slight change of syntax, you can change your condition from equal to, for example, greater than or less than by changing IR_NUMBER to IRGT_NUMBER when you want you condition to be number > 1 instead of number = 1 or changing IR_NUMBER to IRLT_NUMBER when you want your condition to be number < 1 instead of number = 1, respectively.

Corresponding documentation, as you yourself found: https://docs.oracle.com/database/121/HTMDB/bldapp_rpt_int.htm#HTMDB28370