Oracle Apex 5.0使用JavaScript将值设置为项目

问题描述 投票:3回答:2

我基于包含主要和详细信息数据的View构建了一个交互式报告,我使用了Column Break让报告有意义,我使用了主ID作为报告我使用FO Designer构建的链接,因此我使用了隐藏项目,用于设置其中的ID值,并根据此值打印报告。

所以我使用动态动作来设置记录中的值(使用$ s('P50_NEW',this.triggeringElement.id))。但是该值没有存储在项目(会话状态)中,而且我坚持到这里。

请任何人可以帮助我如何做到这一点,以及如何让apex首先设置会话状态然后打印报告。

谢谢。

javascript oracle oracle-apex
2个回答
7
投票

根据API Reference$s('P50_NEW',this,triggeringElementId)没有设置会话状态的值。 $s(...)设置的范围是针对当前页面,而不是针对会话。

要在会话中设置值,您可以调用apex.server.process API来设置会话中的值。

因此,更新的动态执行Javascript将如下所示:

$s('P50_NEW',this.triggeringElement.id);
apex.server.process ( "SAVE_HIDDEN_VALUE_IN_SESSION_STATE", {
  x01: "set_session_state",
  pageItems: "#P50_NEW"
  }, {dataType: 'text'} );

1
投票

如果您需要设置会话状态以使用报告SQL源中的值,则最简单的解决方案是在报告Page Items to Submit属性中指定项目名称并刷新报告:

apex.item( "P50_NEW" ).setValue (this.triggeringElement.id);
apex.jQuery('#Report').trigger('apexrefresh');

(假设报告Static ID是报告)

© www.soinside.com 2019 - 2024. All rights reserved.