|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
Oracle Forms 6i. Есть форма и в одном из её окон (окне редактирования) есть блок данных с DatabaseItem = Yes. В триггере формы WHEN-WINDOW-CLOSED проверяю изменились ли данные при закрытии этого окна : if :SYSTEM.event_window='ИМЯ_МОЕГО_ОКНА' then if get_block_property('ИМЯ_МОЕГО_БЛОКА', status) = 'CHANGED' then if YesNo('Сохранить изменения ?') then Commit_Form; else -- ЧТО ТУТ НАПИСАТЬ, ЧТОБЫ ОТКАТИТЬ ИЗМЕНЕНИЯ В МОЁМ БЛОКЕ -- И ЧТОБЫ ПОТОМ ФОРМС СЧИТАЛ, ЧТО ИЗМЕНЕНИЙ НЕ БЫЛО ??? end if; end if; Hide_Window('ИМЯ_МОЕГО_ОКНА'); Go_Block('ИМЯ_БЛОКА_В_ГЛАВНОМ_ОКНЕ'); end if; Как избежать запроса движка формс "Do you want to save the changes you have made ?" при попытке редактировать другую запись в блоке "главного" окна ? forms_ddl('rollbak') не помогает ... Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2020, 20:42 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
Виктор Радченко, Можно попробовать: clear_block(NO_COMMIT); ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2020, 21:56 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
clear_block(NO_COMMIT); Такая конструкция приводит к прекращению дальнейшего выполнения кода триггера формы WHEN-WINDOW-CLOSED и окно редактирования 'ИМЯ_МОЕГО_ОКНА' остаётся активным т.е. его нельзя закрыть без сохранения изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 06:54 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
YesNo('Сохранить изменения ?') - это вызов самодельной функции, в которой осуществляется переход в другой блок? И на момент выполнения clear_block текущим является не 'ИМЯ_МОЕГО_БЛОКА', а какой-то другой? Тогда перед CLEAR_BLOCK надо выполнить явный переход в него. GO_BLOCK(('ИМЯ_МОЕГО_БЛОКА'); ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 10:12 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
1) Да, YesNo() это самопальная русскоговорящая процедура с вопросом о сохранеии. 2) Я изначально догадался поставить GO_BLOCK(('ИМЯ_МОЕГО_БЛОКА'); перед вызовом clear_block(NO_COMMIT); Проблема clear_block() скорее всего в валидации, обязательности заполнения полей блока или ещё в чём-то. Хотя сколько я не колдовал вокруг этих тем, ничего не помогает. А вопрос то простой : как отменить внесённые в окне изменения и заставить движок формсов не задавать вопрос на английском языке "Do you want to save the changes you have made ?" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 10:25 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
Виктор Радченко, У clear_block есть еще значение параметра NO_VALIDATE Oracle Forms flushes the current block without validating the changes, committing the changes, or prompting the end user. Может с ним прокатит. А насчет подавления сообщений можно поиграться еще со значениями системной переменной :SYSTEM.MESSAGE_LEVEL ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 11:24 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
NO_VALIDATE тоже пробовал. Уровень сообщений - посмотрю. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 12:15 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
Виктор Радченко, а если просто RAISE FORM_TRIGGER_FAILURE? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 15:52 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
KLAYD Виктор Радченко, а если просто RAISE FORM_TRIGGER_FAILURE? Происходит прекращение работы триггера и окно остаётся на месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 08:14 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
va_kochnev Виктор Радченко, Можно попробовать: clear_block(NO_COMMIT); Вот это всё-таки помогло. Ковырял валидацию и вдруг заработало. Большое спасибо, va_kochnev !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 08:16 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
Виктор Радченко ,ответ на вопрос:"Как избежать запроса движка формс "Do you want to save the changes you have made ?" я подробно расписал в теме : https://www.sql.ru/forum/1327701/izmenenie-dannyh-cherez-formy-oralce-forms-drugoy-podhod Ключевые действия после изменения данных в строке блока: Код: plsql 1. 2.
Откат при необходимости выполняется на сервере БД, Затем выполняется execute_query блока. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 13:40 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
medium ...расписал в теме : https://www.sql.ru/forum/1327701/izmenenie-dannyh-cherez-formy-oralce-forms-drugoy-podhod Ключевые действия ... IMHO мы сталевары, мы делаем жесть ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 14:20 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
2 Leonid Kudryavtsev Леонид, буду благодарен за любую критику предлагаемого мной подхода. Желательно в соответствующем топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 15:16 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
medium 2 Leonid Kudryavtsev Леонид, буду благодарен за любую критику предлагаемого мной подхода. Желательно в соответствующем топике. а чего там критиковать? там даже не написано, зачем такая странная конструкция понадобилась и зачем взяли и выкинули на помойку всю работу Forms с БД и написали свою. Нафига? p.s. поэтому в соответствующем топике ничего писать не хочу, что бы флейм не разводить ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 15:33 |
|
Как избежать запроса "Do you want to save the changes you have made ?"
|
|||
---|---|---|---|
#18+
Робя, успокойтесь. Формс 6i уже выкинут на свалку истории, как и мой любимый Visual FoxPro 9. Но вопросы остаются и я очень рад, что мне помогают. Всем лучики счастья и сладкого кодинга))) ЗЫ До смысла письма medium ещё не дорос, но с Леонидом Кудрявцевым согласен. Не стоит устраивать вивисекцию только потому, что люди делавшие продукт думали по другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2020, 03:58 |
|
|
start [/forum/topic.php?fid=51&gotonew=1&tid=1877890]: |
0ms |
get settings: |
20ms |
get forum list: |
23ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
66ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
408ms |
get tp. blocked users: |
2ms |
others: | 317ms |
total: | 897ms |
0 / 0 |