Oracle APEX 比较两个项目值以触发动态操作

Oracle APEX Compare Two Items Values to Fire a Dynamic Action

我想创建一个动态操作,当我的页面项目 P2014_BALANCE < P2014_CURRENT_PRICE 然后 P2014_CURRENT_PRICE 获得静态值 0 时。 问题是我无法比较这两个页面项目。我尝试在动态操作的 when 部分使用 Javascript 表达式,如下所示:

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

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

我也试试这个:

仍然没有。

这是一个网络应用程序。所有页面项目都包含字符串值。所以如果你想做数字比较,把它们设为数字:

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

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

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

更改 项目 P2014_CURRENT_PRICE 的动态操作,客户端条件类型为 Javascript 表达式 来源:

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

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