|
Сохранить начальное значение поля после POST-a
|
|||
---|---|---|---|
#18+
Доброго времени! Есть приложение на Oracle forms. В приложении форма "Детали заказа", с меню. По клику на пункте меню, в новой сессии запускается отчет BI-publisher по выбранному заказу. На форме есть поле "Дата". Проблема в том, что, так как отчет запускается в новой сессии, то, пока пользователь не нажмет ОК - изменения, сделанные в форме не закоммитятся, и отчет будет строиться по старой дате. Чтобы обработать эту ситуацию решено, при запуске отчета, проверять изменилась ли данные в поле "Дата" и выводить предупреждение. Пробовал реализовать следующими способами: 1. В WHEN-WINDOW-ACTIVATED записывать начальное значение даты в глобальную переменную и при запуске отчета сравнивать с текущим значением, выдавать предупреждение, если дата изменилась 2. Проверять :sysem.record_status, если он не равен 'QUERY' - выводить сообщение Все работает, НО!!!! На форме есть кнопка "Применить", по нажатию выполняется POST, после чего :sysem.record_status снова становится равным 'QUERY', а значение глобальной переменной равным NULL. Получается, что изменения в другой сессии ЕЩЕ не видны, а в этой сессии УЖЕ не видны ))) Вопрос - как сохранить начальные значения поля или статус записи в форме, после выполнения команды POST? Если решение в принципе не верно и есть другие способы решить данную задачу - буду рад совету. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2019, 22:41 |
|
Сохранить начальное значение поля после POST-a
|
|||
---|---|---|---|
#18+
1. Не знаю ))) 2. Не очень понимаю Вашу проблему. Если это Ваша собственная форма, то Вы и так должны знать, когда выдавался POST, когда COMMIT. Выглядит так, что форма/задача поставлена крайне криво и проблема не техническая, а исключительно организационная. 3. Можно попытаться определять средствами сервера. В главном подфоруме знатоков собственно Oracle Database полно, возможно смогут что-то посоветовать. IMHO & AFAIK Если был POST, то транзакция на сервере должна быть активна (должны были быть выполнены insert'ы,update'ы,delete'ы), т.е. можно попытаться проверить на уровне сервера, а не Forms'ов. Беглый поиск по Инет выдал ссылку: https://stackoverflow.com/questions/1299694/oracle-how-to-find-out-if-there-is-a-transaction-pending ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:21 |
|
|
start [/forum/topic.php?fid=51&fpage=2&tid=1877909]: |
0ms |
get settings: |
16ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
44ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
129ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 523ms |
0 / 0 |