как перейти к следующему полю в табличной форме оракула? - PullRequest
0 голосов
/ 03 июля 2018

Я создаю 2 табличных формы и перемещаю одно поле во второе поле табличной формы. Смотри картинку ниже

enter image description here

КОД:

 BEGIN

 :EMP1.EMPNO := :EMP.EMPNO;
 :EMP.EMPNO := NULL;

 :EMP1.ENAME := :EMP.ENAME;
 :EMP.ENAME := NULL;

 :EMP1.JOB := :EMP.JOB;
 :EMP.JOB := NULL;

:EMP1.MGR := :EMP.MGR;
:EMP.MGR := NULL;

:EMP1.HIREDATE := :EMP.HIREDATE;
:EMP.HIREDATE := NULL;

:EMP1.SAL := :EMP.SAL;
:EMP.SAL := NULL;

:EMP1.COMM := :EMP.COMM;
:EMP.COMM := NULL;

:EMP1.DEPTNO := :EMP.DEPTNO;
:EMP.DEPTNO := NULL;

END;

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Вместо установки всех элементов блока EMP в NULL, просто DELETE_RECORD. Итак:

BEGIN
  :EMP1.EMPNO    := :EMP.EMPNO;
  :EMP1.ENAME    := :EMP.ENAME;
  :EMP1.JOB      := :EMP.JOB;
  :EMP1.MGR      := :EMP.MGR;
  :EMP1.HIREDATE := :EMP.HIREDATE;
  :EMP1.SAL      := :EMP.SAL;
  :EMP1.COMM     := :EMP.COMM;
  :EMP1.DEPTNO   := :EMP.DEPTNO;

  DELETE_RECORD;
END;
0 голосов
/ 04 июля 2018

Кажется, нет причины, за исключением того, что ваше первое поле (:EMP.EMPNO) имеет свойство Required, установленное на Yes в Data части Property Palette, и вы пытаетесь установить его на NULL [as :EMP.EMPNO := NULL;].

  • Измените его на No.

Я думаю, что EMPNO - это столбец первичного ключа таблицы EMP, а Forms предполагает, что это поле имеет значение Required.

P.S. Если вы хотите зафиксировать внесенные вами изменения, изменение требуемого свойства :EMP.EMPNO на No будет недостаточным, так как это основной ключ. Таким образом, поскольку вы устанавливаете это значение в нуль, DML delete emp where empno = :EMP.EMPNO; [конечно insert into emp1(empno,...) values(:EMP.EMPNO,....)] должен быть выдан в течение вашего времени удаления, предполагая, что EMP1 как отдельная таблица) должен быть выпущен внутри вашего вышеупомянутого Код.

...