【问题标题】:Oracle APEX Compare Two Items Values to Fire a Dynamic ActionOracle APEX 比较两个项目的值以触发动态操作
【发布时间】:2021-10-09 11:29:04
【问题描述】:

我想创建一个动态操作,当我的页面项目 P2014_BALANCE

if(apex.item( "P2014_CURRENT_PRICE " ).getValue() < apex.item( "P2014_CURRENT_PRICE " ).getValue()){
alert('Wrong Number');
};

但是当我的页面加载时出现错误(甚至 Fire on Initialization = False)。

我也试试这个:

还是什么都没有。

【问题讨论】:

  • 你想在什么时候触发这个动态动作——这是在页面加载时(如果是的话你需要一个动态动作还是你可以使用计算来代替?)还是当 P2014_CURRENT_PRICE 改变时?如果您解释页面流程,那将是有意义的。什么是“出错”?错误是什么?
  • 嗨@Koen,感谢玩具的回答。我想在 P2014_CURRENT_PRICE 改变时触发这个 DA。关于流程是这样的:当页面加载项目 P2014_BALANCE 从我的表付款中获取余额。因此,当用户将值更改为 P2014_CURRENT_PRICE 时,我想比较这两个项目,如果 P2014_CURRENT_PRICE > P2014_BALANCE 将 P2014_CURRENT_PRICE 项目的静态值设置为 0
  • 更新了我的答案。

标签: oracle-apex oracle-apex-5 oracle-apex-5.1


【解决方案1】:

这是一个网络应用程序。所有页面项目都包含字符串值。因此,如果您想进行数字比较,请将它们设为数字:

if (Number(apex.item( "P2014_BALANCE" ).getValue()) < Number(apex.item( "P2014_CURRENT_PRICE" ).getValue())) {
alert('Wrong Number');
};

请注意,在您的示例中,您有两次 P2014_CURRENT_PRICE - 无论如何都会产生 false。

这就是您在动态操作中实现这一点的方式。请注意,我在 21.1 上尝试过,但在 5 中应该类似(考虑升级):

Item P2014_CURRENT_PRICEChange 的动态操作,客户端条件类型为 Javascript 表达式 来源

apex.locale.toNumber(apex.item( "P2014_CURRENT_PRICE" ).getValue()) > apex.locale.toNumber(apex.item( "P2014_BALANCE" ).getValue())

真正的行动与行动设定价值 设置类型静态分配 “0” 受影响的元素 Item P2014_CURRENT_PRICE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多