КАК ВСТАВИТЬ ЗАПИСЬ В БЛОК ДАННЫХ НА ФОРМАХ ORACLE - PullRequest
0 голосов
/ 29 января 2019

У меня есть форма оракула, которая содержит блок данных B_ITEM , который ссылается на таблицу базы данных master_item .Пользователь вводит два элемента в один счет вручную в блоке данных, и в зависимости от определенных условий мне необходимо автоматически добавить элемент фрахта в тот же блок B_ITEM .Не могли бы вы, пожалуйста, руководство, как вставить данные в блок данных.(Примечание: я не хочу вставлять непосредственно в таблицу, к которой это относится)

Шаг-1 Создан блок canvas on date на B_ITEM, где пользователь может предоставить ввод.Блок
содержит элемент поля из таблицы master_item.

Шаг-2. Скажем, пользователь ввел два элемента на холсте, на котором указано B_ITEM, и нажмите кнопку ОК.

Шаг-3 Итак, наряду с двумя предметами, в блок B_ITEM должен быть вставлен еще один элемент, который должен отображаться на холсте 3-я строка .

enter image description here
На приведенном выше изображении я показал пример отдельного элемента, поэтому, как только пользователь нажмет кнопку OK, второй элемент должен быть добавлен на основе таблицы настроек.

MASTER_FREIGHT_LINK
ITEM FREIGHT_ITEM
101396306 101396307

Таким образом, на холсте элемент фрахта должен быть добавлен во второй ряд, как только пользователь нажмет кнопку OK, введя ITEM-101396306.

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Я не совсем понимаю, что у вас есть, поэтому - позвольте мне подумать вслух.

  • в базе данных есть таблица с именем MASTER_ITEM
  • , вы создали форму, блок которойB_ITEM основан на таблице MASTER_ITEM
  • блок данных содержит некоторые элементы, которые, я полагаю, являются элементами базы данных (которые принадлежат таблице MASTER_ITEM)
  • вы вводите некоторые данные в эти элементы
  • на основе их значений (т. Е. определенное условие ), вы захотите заполнить FREIGHT_ITEM, который находится в том же блоке, но не является элементом базы данных.Это правильно?

Если это так,

  • создайте FREIGHT_ITEM (есть несколько способов сделать это; простой способ - использовать вертикальную панель инструментов +или скопировать / вставить один из существующих элементов и изменить его свойства)
  • создать триггер WHEN-VALIDATE-ITEM для элементов, которые должны решить, какое значение следует поместить в FREIGHT_ITEM.Поместите упомянутое вами условие в код триггера и заполните значение FREIGHT_ITEM, например,

    if :b_item.item1 > 100 and 
       :b_item.item2 = 'A' 
    then
       :b_item.freight_item := 42;
    end if;
    

Теперь, как вы сказали, что вы не хотите сохранять это значение непосредственно в базе данных (это означает, что это не элемент базы данных), вам придется делать это вручную, создавая дополнительные триггеры ON-INSERT и / или PRE-INSERT и / или PRE-UPDATE, которые будут делать это как

update master_item i set
  i.freight_item = :b_item.freight_item
  where i.some_id = :b_item.some_id;    
0 голосов
/ 29 января 2019

Триггер ON-INSERT может использоваться для отмены механизма вставки форм оракула.Запишите в триггер вставки необходимые операторы вставки, которые могут вставлять данные в любую таблицу.

...