Поле первичного ключа должно иметь уникальное значение в пределах одной таблицы, поэтому лучше, если его значения будут устанавливаться автоматически, а не вводиться пользователем вручную.
Для того, чтобы при создании новой записи в каждом из блоков данных поле первичного ключа (в нашем случае поле «KOD») принимало автоматически следующее по порядку значение необходимо в каждом блоке объявить триггер «PRE-INSERT». Сделать это можно следующим образом:
1. В окне Object Navigator выбрать блок данных «DOVER» и в нем выбрать узел «Triggers»;
2. Затем вызвать контекстное меню и выбрать пункт Smart Triggers->Others->PRE-INSERT (рис. 119).
3. В появившемся окне ввести следующий код треггера:
SELECT kod_d_dover2.nextval INTO:DOVER.kod FROM dual; |
Рисунок 119 - Создание триггера PRE-INSERT
Аналогичный триггер нужно создать и в блоке «DOVER_SP» со следующим кодом:
SELECT kod_d_dover_sp2.nextval INTO:DOVER_SP.kod FROM dual; |
Теперь можно запустить форму на выполнение и проверить: появляются ли в кодовых полях значения при выборе того или другого блока данных.
|
|
Скрытие кодовых полей
Чтобы у пользователя не было доступа к кодовым полям в блоках данных, эти поля необходимо скрыть. Вызовем Property Palette для элемента «KOD» блока данных «DOVER» (рис. 120)и установим свойство «Canvas» этого элемента в «Null» значение, после этого поле «KOD» должно исчезнуть в окне «Layout Editor».
Таким же образом установим свойство «Canvas» для элементов «KOD» и «KOD_D_DOVER2» блока «D_DOVER_SP».
Рисунок 120 - Вызов окна свойств поля «KOD»