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

How to prepopulate date field based on other date field?

我在 oracle apex 中有 2 个日期字段,Date1 是强制性的,需要用户输入,Date2 需要预填充为(Date1+2 年),然后用户单击保存按钮将值保存在数据库中。 然后,如果用户单击 Date2 并更改为其他内容,它应该采用该值并保存。

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

我尝试使用第 2 步的动态操作设置值,但每当我单击“保存”按钮时第 4 步都不起作用,它正在重新计算回到 Date1+2 年。

请帮忙。

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

  1. 创建动态操作以在 P1_DATE1 更改时设置 P1_DATE2 的值。使用 PL/SQL 表达式作为类型和 PL/SQL 表达式 ADD_MONTHS(TO_DATE(:P1_DATE1,'DD/MM/YYYY'),24);
  2. 将 "Fire on initialization" 设置为 false,这样它就不会在为现有记录加载屏幕时重新计算 P1_DATE2 - 这可能是您所看到的行为的原因。
  3. 您只希望为新记录触发动态操作是有道理的,因此您可以在项目 P1_ID 的 "ITEM IS NULL" 动态操作中添加 server-side 条件。