将值,一个控件更新为另一个

时间:2018-04-06 12:33:39

标签: oracle-apex oracle-apex-5.1

历史,我是一位经验丰富的PL / SQL开发人员,学习使用Apex并努力学习一些概念。在使用PL / SQL之前,我使用过各种平台,包括Delphi和VB。

问题,如何从另一个组件中获取组件中设置的值。练习的目的是使交互式网格中的报告更改取决于下拉列表中选择的值,下拉列表中的值作为绑定var在where子句中。我原来的设置不起作用。经过各种实验,我制作了这个测试用例,其中对象是标签显示下拉列表中选择的值: -

Page view

P300_SELECT(左)是一个简单的下拉列表,未使用默认值进行修改。 P300_SELECTED_VALUE是一个标签设置,用于显示P300_SELECT中的值: -

Component setup

这不起作用!当我将标签的源设置更改为STATIC VALUE并将值设置为& P300_SELECT时,它仍然不起作用。

我还尝试在下拉列表中添加CHANGE动态操作以调用标签上的刷新,但它仍然无效!绝望地确认该值确实在下拉时发生变化,我在执行以下javascript的更改事件中添加了第二个真实操作:

apex.message.alert($ V(" P300_SELECT&#34));

果然,这可以显示事件正在触发并且值正确: -

Label no change, but alert message works...

发生什么事了? 为什么即使刷新了标签,标签也不会更新? 我需要做些什么来完成这项工作?

提前感谢您的帮助!

鲍勃

1 个答案:

答案 0 :(得分:0)

要做到这一点

1 - 创建一个动态操作,以便在更改P300_SELECT的值时启动。

2 - 现在有很多方法可以做到这一步,但我会以这种方式来做。在此动态操作中创建一个真实操作,此真实操作是“执行PL / SQL代码”。代码是:

BEGIN

:P300_SELECTED_VALUE := :P300_SELECT;

END

在此真实操作中,将项目P300_SELECT放在“要提交的项目”字段中。以及“要退货的项目”中的项目P300_SELECTED_VALUE。

3 - 现在在同一个动态动作中再创建一个真实动作。这个真实的操作是“刷新”并选择报告/ IG的区域。

***如果项目P300_SELECTED_VALUE仅用于测试,则丢弃上面的第一个真实操作,并使用项目P300_SELECT填写选择语句“要提交的页面项目”旁边的字段。

为什么你的尝试不起作用?

1 - 源部分用于设置页面加载时的值,此设置不会影响页面加载后的更改。

2 - 报告未刷新,因为更改后该项目不在会话中。

实施例。 https://apex.oracle.com/pls/apex/f?p=145797:15

使用此工作区检查某些内容:

workspace: STACKQUESTIONS
user: test
password: test
app: 145797
page: 15

登录:https://apex.oracle.com/pls/apex/f?p=4550