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
是报告)
我基于包含主数据和详细数据的视图构建了一个交互式报告,我使用了分栏符让报告有意义,我使用主 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
是报告)