Oracle Apex 5.0:等待生成 IR,直到输入标准字段
Oracle Apex 5.0: Wait to generate IR until criteria fields entered
我有一个 APEX 5.0.3.00.03 页面,其中包含许多条件字段,后跟一个包含交互式报告 (IR) 的区域。我想推迟生成 IR,直到单击 "Generate" 按钮,但我遇到了麻烦。没有标准的报告会通过讨厌的 5 table 连接生成数百万行,所以我想推迟它的处理,直到用户准备好。我知道我可以做一个 /*+ FIRST_ROWS */
提示,但仍然想避免调用 SQL 直到用户选择一些条件。
我尝试了以下方法:
创建了一个隐藏字段 P210_WAIT,初始值为 'TRUE',我将其包含在 SQL 标准中,如下所示:
select * from tab_1, tab_2, tab_3, tab_4, tab_5
where :P210_WAIT != 'TRUE'
and -- join, and dozens of other criteria here
在“生成”按钮上的动态操作中,我做了两件事:
- 执行PL/SQL代码设置
:P210_WAIT := 'FALSE';
- 刷新动作:
- 操作:刷新
- 受影响的元素:选择类型:区域。地区:(包含我的 IR 的地区)
我在 PL/SQL 代码中有调试语句,它们出现了,但是生成报告的 SQL 不是 运行,这意味着刷新操作不是"waking up" IR.
确实显示 IR SQL 正在页面加载时执行,因为我正在动态设置 IR 属性 "When No Data Found" 值最初说 "Please select criteria and click the Generate button to display report" 并且它正在工作。
如果我对您的问题的理解正确,那么您的主要问题是:刷新区域的动态操作不起作用,对吗?
如果这是问题所在,试试这个:
First, make sure that all the bind variables in the source query is listed on the Page Items to Submit
under the source query region.
Then, Assign Static ID
for the IR region.
Next will be, changing the Refresh
dynamic action to Execute Javascript
and paste this
$('#static_id').trigger('apexrefresh');
希望对您有所帮助。
我有一个 APEX 5.0.3.00.03 页面,其中包含许多条件字段,后跟一个包含交互式报告 (IR) 的区域。我想推迟生成 IR,直到单击 "Generate" 按钮,但我遇到了麻烦。没有标准的报告会通过讨厌的 5 table 连接生成数百万行,所以我想推迟它的处理,直到用户准备好。我知道我可以做一个 /*+ FIRST_ROWS */
提示,但仍然想避免调用 SQL 直到用户选择一些条件。
我尝试了以下方法:
创建了一个隐藏字段 P210_WAIT,初始值为 'TRUE',我将其包含在 SQL 标准中,如下所示:
select * from tab_1, tab_2, tab_3, tab_4, tab_5
where :P210_WAIT != 'TRUE'
and -- join, and dozens of other criteria here
在“生成”按钮上的动态操作中,我做了两件事:
- 执行PL/SQL代码设置
:P210_WAIT := 'FALSE';
- 刷新动作:
- 操作:刷新
- 受影响的元素:选择类型:区域。地区:(包含我的 IR 的地区)
我在 PL/SQL 代码中有调试语句,它们出现了,但是生成报告的 SQL 不是 运行,这意味着刷新操作不是"waking up" IR.
确实显示 IR SQL 正在页面加载时执行,因为我正在动态设置 IR 属性 "When No Data Found" 值最初说 "Please select criteria and click the Generate button to display report" 并且它正在工作。
如果我对您的问题的理解正确,那么您的主要问题是:刷新区域的动态操作不起作用,对吗?
如果这是问题所在,试试这个:
First, make sure that all the bind variables in the source query is listed on the
Page Items to Submit
under the source query region.Then, Assign
Static ID
for the IR region.Next will be, changing the
Refresh
dynamic action toExecute Javascript
and paste this$('#static_id').trigger('apexrefresh');
希望对您有所帮助。