提问人:vr_oracle 提问时间:7/4/2023 最后编辑:Or Assayagvr_oracle 更新时间:7/4/2023 访问量:352
对日期字段使用动态操作的 Oracle Apex
oracle apex using dynamic action on a date field
问:
我是 oracle apex 的新手,需要一些输入。
有一个用于输入标题信息的表单。因为有一个日期字段:P 100_ENTERED_DATE,如果此字段值小于当前日期,那么我们需要启用另一个字段 :P_100_REASON 并使其成为必填字段。
任何建议都会有很大帮助。
我尝试使用 JS 表达式将客户端条件放入如下所示,但没有奏效。
什么时候: 事件:更改 类型: 项目 商品: :P 100_ENTERED_DATE
客户端条件:Javascript 表达式。
JS 表达式:
var ld_cust_date = apex.item("P102_CUST_REQUEST_DATE").getValue();
var current_date = new Date();
if ((current_date - ld_cust_date) > 2){
return true
}
else {
return false
}
True Condition:启用该字段(我也想将其设置为必填项,但不确定如何执行此操作) False Conditoin:禁用该字段。
答:
1赞
Littlefoot
7/4/2023
#1
这可能是一种选择:
- 一个页面上有 4 个项目:
- P100_SYSDATE
- 隐藏
- source 是函数体:
return to_char(sysdate, 'dd.mm.yyyy');
- P100_ENTERED_DATE
- 日期选择器
- 格式掩码:
dd.mm.yyyy
- P100_DATE_DIFF
- 隐藏
- 它将包含 sysdate 和输入日期之间的差异
- P100_REASON
- 文本项
- P100_SYSDATE
在P100_ENTERED_DATE上创建动态操作,该操作在更改事件时触发,并包含 4 个真实操作:
- 初始化时隐藏原因
- 操作:隐藏
- 受影响的元素:P100_REASON
- 初始化时触发
- 客户端条件:项目为 null,P100_REASON
- 设置日期差异
- 操作:设置值
- PL/SQL 表达式:
to_date(:P100_SYSDATE, 'dd.mm.yyyy') - to_date(:P100_ENTERED_DATE, 'dd.mm.yyyy')
- 提交项目:P100_SYSDATE、P100_ENTERED_DATE
- 显示原因:
- 动作:显示
- 受影响的元素:P100_REASON
- 客户端条件:项目>值;P100_DATE_DIFF;0
- 隐藏原因
- 操作:隐藏
- 受影响的元素:P100_REASON
- 客户端条件:项目 <= 值;P100_DATE_DIFF;0
在P100_REASON上创建验证:
type 是函数体,返回错误文本
if :P100_DATE_DIFF > 0 and :P100_REASON is null then return ('Reason is required'); end if;
就是这样。以下是一些测试截图(今天 = SYSDATE = 2023 年 7 月 4 日 04.07.2023)
- 答:输入的日期是 2023 年 7 月 2 日,因此必须显示“原因”并且必须包含一些值。“提交”按钮引发错误,因为“原因”为空
- B:输入原因后,页面提交成功
- C:日期(2023 年 7 月 6 日)在今天之后,因此不应显示“原因”,也不是必需的。提交。。。好吧,提交页面
评论
0赞
vr_oracle
7/4/2023
非常感谢您花时间在这上面。.我会试一试,让你知道它是否有效。
评论