Как я могу получить значение от конкретного экземпляра элемента? - PullRequest
3 голосов
/ 18 мая 2011

Я пытаюсь создать форму для многоэлементной базы данных.Когда я открою его, он будет заполнен только одной записью, всегда.И я хочу, чтобы в нем была функциональность, которая заполнит все поля новой созданной записи, так же, как они есть в первой (выбранной из БД) записи.Просто скопируйте их из первой записи, и все.

Я пытаюсь использовать триггер WHEN-NEW-ITEM-INSTANCE и условие:: system.record_status IN ('NEW', 'INSERT') "но я не знаю, как сказать Forms, что мне нужна ценность из моей первой записи.Я имею в виду,

IF :system.record_status IN ('NEW','INSERT')
THEN
  :block.item := <<here goes pointer to my first record of that item>>
END IF;

Итак, как я могу получить значение от конкретного экземпляра элемента?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

Создать фиктивный блок, который будет невидим для пользователей. Заполните его своей записью по умолчанию как часть триггера WHEN-NEW-FORM-INSTANCE.

Затем в вашем фактическом блоке DATA вы можете ссылаться на элементы в фиктивном блоке, чтобы предварительно заполнить элементы. Вероятно, я бы предпочел использовать более высокий уровень триггера, такого как WHEN-CREATE-RECORD, а не рой триггеров WHEN-NEW-ITEM-INSTANCE, но это зависит от того, как остальная часть вашего дизайна соединяется.


"Это сырой раствор"

Извините, я не понял, что вы отображаете запись по умолчанию для пользователей. Однако, насколько мне известно, в Forms нет никакого механизма для ссылки на запись, отличную от текущей записи (полное раскрытие информации: я на самом деле некоторое время не использовал Forms, и у меня нет доступа, чтобы проверить, является ли это все еще дело).

Что вы могли бы сделать:

First_Record;
Duplicate_Record;

У этого также есть и обратная сторона, поскольку пользователь может смущать навигационный прыжок.

0 голосов
/ 13 сентября 2011

Решение APC должно работать с одной модификацией:

First_Record;<br> Create_Record;<br> Duplicate_Record;

Duplicate_Record всегда копирует предыдущую запись в текущую запись, необязательно в новую запись. Очевидно, Create_Record создаст эту новую запись для вас.

...