【问题标题】:Updating values, one control to another更新值,一个控件到另一个控件
【发布时间】:2018-04-06 12:33:39
【问题描述】:

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

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

Page view

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

Component setup

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

我也试过在下拉菜单上添加一个 CHANGE 动态动作来调用标签上的刷新,它仍然不起作用!为了确认下拉列表的值确实发生了变化,我向执行以下 javascript 的更改事件添加了第二个真实操作:

apex.message.alert($v("P300_SELECT"));

果然,这表明事件正在触发并且值正确:-

Label no change, but alert message works...

那么发生了什么? 为什么即使调用了刷新标签也不会更新? 我必须做什么才能完成这项工作?

提前感谢您的帮助!

鲍勃

【问题讨论】:

标签: oracle-apex oracle-apex-5.1


【解决方案1】:

这样做

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

【讨论】:

  • 嗨,谢谢罗穆尔! :-) - 经过大量实验和参考我在周五​​下午晚些时候在这里找到的另一个项目后,我按照您的描述完成了这项工作,但我完全不确定这是正确的方法!是否有任何文章描述了 Apex 事件模型以及它是如何结合在一起的?我认为一些这样的概述文章将极大地帮助我理解。感谢您不厌其烦地回复... - Bob
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多