Правильный способ установки неотображаемого поля базы данных в APEX - PullRequest
0 голосов
/ 11 февраля 2019

Я запутался, когда использовать динамические действия, вычисления и процессы в APEX.

Допустим, у меня есть таблица PERSON со следующими полями: - NUM_ID (не-отображаемая клавиша, как GUID) - CHAR_ID (уникальный, отображаемый и вводимый) - ИМЯ

Таблица PERSON присоединяется к таблице EMPLOYEE с помощью поля NUM_ID.Таблица Employee имеет следующие поля: - NUM_ID (неотображаемый ключ) - HIRE_DATE (отображается и вводится)

У меня есть форма APEX, основанная на таблице EMPLOYEE.У меня есть 2 функции, которые я бы хотел выполнить:

  1. Когда для существующей записи отображается , в форме должны отображаться CHAR_ID и NAMEдля NUM_ID в этой записи.

  2. Когда новая запись создана , вводится CHAR_ID.Форма должна получить / выбрать NAME и NUM_ID из записи PERSON, отобразить NAME человека и установить неотображаемый NUM_ID, поэтому поле устанавливается при сохранении / создании записи EMPLOYEE.

Уместно ли использовать динамические действия для каждой из этих двух задач?

Например, у меня будет:

  • GET_CHAR_ID_AND_NAME Динамическое действие, которое выполняется при изменении NUM_ID (когда запрашиваются записи) и

  • GET_NUM_ID_AND_NAME Динамическое действие, которое выполняется при изменении поля CHAR_ID (при вставках).

Для динамического действия GET_CHAR_ID_AND_NAME для события подавления будет задано значение Да, поэтому динамическое действие GET_NUM_ID_AND_NAME не будет вызывать цикл.

Я работалс APEX несколько лет назад, но я забыл, как я выполнял эти типы функций.Я думаю, что я, возможно, пытаюсь использовать динамические действия неправильно, и некоторые из этих функций встроены в Page Processing?

Буду весьма признателен за любые общие советы или подсказки.

1 Ответ

0 голосов
/ 11 февраля 2019

С моей точки зрения, самый простой способ сделать это - (использовать Мастер и) создать отчет с формой в таблице , так как он создаст

  • интерактивный отчет (IR), который вы используете для просмотра существующих данных;он позволяет вам переходить к деталям (например, форма ) и содержит кнопку CREATE для создания новых записей
  • форму, которая вызывается из IR и используется для
    • введите новые значения
    • обновить или удалить существующие строки

Вам не нужно ничего кодировать;по умолчанию это будет работать.Выглядит не очень красиво, но - это сработает.Apex создаст соответствующие процессы (автоматическая выборка и обработка строк).Основным «недостатком» является то, что вы будете видеть идентификаторы, а не значения, которые стоят за этими идентификаторами.

Теперь у нас есть вопрос: как «использовать» (установить) идентификатор, но «отобразить»"его описание?

Я предпочитаю Выбрать список тип элемента, чтобы сделать это.Его источником может быть (среди нескольких вариантов) запрос SQL, который должен возвращать два значения: display (это будет «имя» или «описание») и return (это будет «ID»).Например:

select p.name     disp_value,
       e.num_id   ret_value
from person p join employee e on e.num_id = p.num_id
order by p.name

По сути, вам не нужно ничего кодировать или создавать собственные функции, чтобы делать что-то - Apex сделает это за вас.

Я предлагаю вам попробовать и посмотреть, как это работает.Поскольку вы уже использовали Apex, возможно, небольшая печать (и чтение того, что я сказал) вернет воспоминания.

...