如何根据其他日期字段预填充日期字段?

时间:2019-07-02 10:57:55

标签: oracle-apex oracle-apex-5

我在oracle apex中有2个日期字段,用户必须输入Date1为必填项,而Date2需要预填充为(Date1 + 2年),然后用户单击保存按钮以将值保存在数据库中。 然后,如果用户单击Date2并更改为其他内容,则应该使用该值并保存。

例如: 1.用户输入日期1-02/07/2019
2.Date2应该自动填充为-02/07/2021,但不应保存在数据库中。
3.用户点击保存按钮保存数据。
4.用户希望将Date2更改为-05/10/2019
5.用户单击保存以保存数据。

我尝试为第2步使用动态操作设置值,但是只要单击“保存”按钮,第4步就无法正常工作,它会重新计算回Date1 + 2年。

请帮助。

1 个答案:

答案 0 :(得分:2)

假设您的表单上有P1_ID(主键),P1_DATE1和P1_DATE2。

  1. 创建动态操作,以在P1_DATE1更改时设置P1_DATE2的值。使用PL / SQL表达式作为类型和PL / SQL表达式 UPDATE CounterData SET counterdatetime = STUFF(counterdatetime,11,1,'T'); ALTER TABLE CounterData ALTER COLUMN counterdatetime datetime;
  2. 将“初始化时触发”设置为false,以便在屏幕加载现有记录时不会重新计算P1_DATE2,这可能是您所看到的行为的原因。
  3. 有意义的是,您只希望为新记录触发动态操作,因此可以在动态操作“ ITEM IS NULL”中为项目P1_ID添加服务器端条件。