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

Oracle Apex 5.0 Set Value To Item using JavaScript

我基于包含主数据和详细数据的视图构建了一个交互式报告,我使用了分栏符让报告有意义,我使用主 ID 作为 link 来报告我使用FO Designer构建,所以我使用了一个隐藏的Item来设置其中的ID值,并根据这个值打印报告。

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

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

谢谢。

根据 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'} );

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

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

(假设报告Static ID是报告)