Если ты пишешь на C++. Тогда все понятно. Подход Oracle Form сильно отличаеться от других.
Самый простой способ следующий
1 способ) Если это твоя таблица. То добавляешь в нее поле MARK_Flag или еще какое-то EVENT. Строишь блок форме та таблице ACCOUNTS . Пользователь отмечает твои записи жмет F10. Ты в триггере на таблице делаешь необходимые действия.
Если это таблица не твоя, то ты добавить поле в общем случае не можешь. Т.к если в формах могут используються процедуры?/функции параметры у которых типы основанные на таблицах, то они отваляться (в формах конечно такие функции лучше не использовать).
2 способ) Можно при клике/отметки записи в блоке менять ее статус с QUERY на CHANGED и обработку писать в триггере блока PRE-UPDATE. Когда пользователь выделил запись. Статус ее поменялся на CHANGED. Он навыделял несколько записей. Нажал Key-commit(F10) записи стали обновляться. В триггере PRE-UPDATE выполнились необходимые действия.
В любом из этих случае все работу по commit/rollback и блокировкам записей берет на себя Формс. И если у тебя что-то меняеться со счетом (его состояние (ОТКРЫТ, ЗАКРЫТ ) т.е какие-то поля счета, то Форс их перечитает автоматически ( если тебе надо)
Второй способ хуже.
--
Совсем правильно - это сначала рассказать какую операцию ты собираешься выполнять над счетом. Тогда возможно есть и другие варианты. Потому что одно дело когда он поднял форму и выбелил 3-4 записи. Другое дело, когда ему надо отобрать 2000 записей. Подходы к построению форм в разных случаях разные.