在Oracle Apex 5中,我想链接到交互式报告并设置过滤器RequestID =#RequestID#

时间:2015-10-22 20:39:52

标签: oracle-apex

我正在尝试将交互式报表中的列链接到Apex 5中的另一个交互式报表。我想在后一个中使用第一个中的值设置过滤器。我使用了Link类型的列然后单击Target按钮来设置页码,如下所示:

Here's the values I used

它不起作用。我读到还有其他方法,我可以使用URL链接并构建URL以使用包传递参数但是如果我使用它,我怎么能将它绑定到链接?

3 个答案:

答案 0 :(得分:2)

通常,您需要指定要在链接中使用的运算符 - 文档: Developing Reports > Editing Interactive Reports in Page Designer > Linking to Interactive Reports

  

有关设置链接的摘录:

     

要创建过滤器,请使用以下itemNamesitemValues语法:

IR[region static ID]<operator>_<target column alias>
     

考虑以下示例:

IR[EMP]C_ENAME:KING

这意味着如果要在报表上放置一个过滤器,其中列REQUEST_ID与给定值匹配,则需要等于运算符语法:

IREQ_REQUESTID:#REQUEST_ID#

然而,使用

IR_REQUESTID:#REQUEST_ID#

也应该有效,因为EQ运算符是默认运算符。

还要考虑其他问题:您是否在页面上有多个IR?你需要引用正确的一个。您生成的链接是否正确?检查一下!

答案 1 :(得分:1)

我发现导致过滤器不起作用的原因。我试图过滤类型&#34;链接&#34;的列。当它是一个&#34;链接&#34;时它不起作用,但是当它是&#34;纯文本&#34;时它就会起作用。所以现在你知道了。这是它的看法...

enter image description here

答案 2 :(得分:0)

对我而言,它的工作原理如下: 我在第二页上用第二个IR创建了一个Item(仅显示)(源类型:null)。

在列属性的第一个IR中设置链接文本以及目标和页码(就像您已经做过的那样)。在“名称”部分中,将您刚刚创建的项目和“值”放入列名称,其中包含过滤器的值(如#Request_ID'#)。

然后在带有第二个IR的第二页上,你会在Region Source中输入类似的内容:

select REQUEST_ID,
       REQUEST_NUMBER,
       NAME,
       FIRST_NAME,
       COMPANY,
       COUNTRY,
       TYPE,
       RQ_IS_ARCHIVE,
       RQ_ID_TO
  from REQUEST
where REQUEST_ID = :P20_REQUEST_ID

:P20_REQUEST_ID是您在第二页上创建的项目。

您将Request_ID列中的值从第一页传递到第二页上的Item,然后您将其用作条件。

希望这可以帮助你...