Как предварительно заполнить поле даты на основе другого поля даты? - PullRequest
0 голосов
/ 02 июля 2019

У меня есть 2 поля даты в oracle apex, Date1 является обязательным для ввода пользователем, а Date2 должен быть предварительно заполнен как (Date1 + 2 года), затем пользователь нажимает кнопку сохранения, чтобы сохранить значения в базе данных. Затем, если пользователь щелкает Date2 и меняет его на что-то другое, ему следует принять это значение и сохранить.

Например: 1.Вводы пользователя Дата1 - 02/07/2019
2.Дата2 должна автоматически заполняться как - 02/07/2021, но не должна сохраняться в базе данных.
3. Пользователь нажимает кнопку сохранения, чтобы сохранить данные.
4. Пользователь хочет изменить Дата2 на - 10/10/2019
5. Пользователь нажимает сохранить, чтобы сохранить данные.

Я пытался установить значение с помощью динамического действия для шага 2, но шаг 4 не работает всякий раз, когда я нажимаю кнопку «Сохранить», он пересчитывается обратно к дате1 + 2 года.

Пожалуйста, помогите.

1 Ответ

2 голосов
/ 02 июля 2019

Предположим, у вас есть P1_ID (первичный ключ), P1_DATE1 и P1_DATE2 в вашей форме.

  1. Создайте динамическое действие для установки значения P1_DATE2 при изменении P1_DATE1.Используйте выражение PL / SQL в качестве типа и выражение PL / SQL ADD_MONTHS(TO_DATE(:P1_DATE1,'DD/MM/YYYY'),24);
  2. Установите для параметра «Пожар при инициализации» значение false, чтобы он не пересчитывал P1_DATE2 при загрузке экрана для существующей записи - это может быть причинойповедения, которое вы видите.
  3. Имеет смысл, что вы хотите, чтобы динамическое действие запускалось только для новой записи, чтобы вы могли добавить условие на стороне сервера в ваше динамическое действие "ITEM IS NULL" дляitem P1_ID.
...