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

Oracle Apex 5.0 Set Value To Item using JavaScript

本文关键字:项目 JavaScript Apex 设置 Oracle      更新时间:2023-09-26

我基于包含主& &;详细数据,我使用Column Break让报表有意义,我使用主ID作为我使用FO Designer构建的报表的链接,所以我使用一个隐藏项目来设置其中的ID值,并根据该值打印报表。

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

请谁能帮我怎么做,请,以及如何使apex首先设置会话状态,然后打印报告。

谢谢。

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

为了设置session中的值,可以调用apex.server.process API设置session中的值。

因此,更新后的动态执行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为report)