Как скопировать первичный ключ из другой таблицы в качестве значения поля по умолчанию моей формы в APEX?

#sql #oracle #oracle-apex

#sql #Oracle #oracle-apex

Вопрос:

Я получил таблицу «user» и таблицу «student», в таблице user есть некоторые атрибуты, такие как user_id, lname, fname и gender, в таблице student есть некоторые другие атрибуты, такие как course, WAM и user_id в качестве внешнего ключа для соединения таблицы student с таблицей user.

Теперь я создаю форму для регистрации учетной записи пользователя. Я создал форму для пользователя, чтобы вставить данные в таблицу пользователя, после нажатия кнопки «Далее» она перейдет в другую форму, чтобы позволить пользователю вставлять данные в таблицу учащихся.

Как я могу перенести идентификатор пользователя из предыдущей формы во вторую форму в качестве значения по умолчанию, чтобы данные в обеих таблицах могли объединяться?

Например, в первой форме пользователь получил свой user_id как 10002, и я хочу ввести это значение в поле user_id второй формы в качестве значения по умолчанию.

Ответ №1:

Две страницы, верно?

Страница 1, пользовательские данные:

  • создайте кнопку («Далее», как вы сказали)
  • в разделе «Поведение» задайте действие для перенаправления на страницу в этом приложении
  • нажмите кнопку «Цель» и
    • установите его для перехода на страницу 2
    • задайте элементы: name = P2_ID , value = amp;P1_ID. (обратите внимание на начальный амперсанд и конечную точку)

Страница 2, данные учащегося:

  • он должен содержать элемент P2_ID, который будет принимать значение, переданное со страницы 1
  • используйте это значение при сохранении данных учащегося в таблице

Комментарии:

1. Спасибо за ответ, я следую шагу, который вы предложили, однако, когда я нажимаю на кнопку «Далее» и перехожу на страницу 2, идентификатор пользователя по-прежнему остается пустым, и когда я проверяю свою базу данных, данные, вставленные на странице 1, не записываются в мою базу данных, как я могу это решить? Дополнительная информация: Я поместил кнопку в поле «СОЗДАТЬ» в области region.

2. Добро пожаловать. Если вы сделали это правильно, то :P2_ID будет иметь значение. Если в таблице ничего не было сохранено, значит, вы не отправляли страницу 1. Для этого нажмите кнопку P1_BTN_NEXT отправить ; затем создайте ветку , которая перенаправит вас на страницу 2 (установите все те настройки, о которых я упоминал ранее, для ветки).

3. Еще раз спасибо за ответ, могу ли я узнать, где я могу создать ветку? Вы имеете в виду, что установите кнопку для отправки страницы и после отправки оставьте страницу на странице 1, затем создайте другую кнопку как «далее»? Или вы имеете в виду, что при создании формы установите «Ветвь здесь при отправке» как страницу 2? но если бы мне это понравилось, я не смог бы выполнить шаг set item в своем поведении. Дополнительная информация, на странице 1, пользователь не может установить идентификатор пользователя вручную, поскольку я установил увеличение идентификатора пользователя на единицу при создании новой записи

4. Ветка находится на вкладке Процессы. На странице 1 будет только одна кнопка: P1_NEXT. Он отправит страницу. При отправке вы перейдете на страницу 2 (не оставайтесь на странице 1, это бесполезно). Независимо от того, как задан идентификатор ПОЛЬЗОВАТЕЛЯ, submit сохранит его в таблице, и он будет находиться в состоянии сеанса, поэтому вы сможете перенести его на страницу 2.

5. Большое спасибо!!! Я решил все!! Теперь небольшая проблема, если пользователь создает новую учетную запись, он закончил заполнять форму на странице 1 и в настоящее время находится на странице 2, но он нажимает «Отмена», как я могу удалить запись, сохраненную на странице 1, когда пользователь нажимает «Отмена» на странице 2? Иначе в моей таблице будет запись, сделанная наполовину