powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Как избежать запроса "Do you want to save the changes you have made ?"
15 сообщений из 15, страница 1 из 1
Как избежать запроса "Do you want to save the changes you have made ?"
    #39992689
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') не помогает ...
Заранее спасибо.
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39992709
va_kochnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктор Радченко,

Можно попробовать:
clear_block(NO_COMMIT);
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39992786
clear_block(NO_COMMIT);
Такая конструкция приводит к прекращению дальнейшего выполнения кода триггера формы WHEN-WINDOW-CLOSED
и окно редактирования 'ИМЯ_МОЕГО_ОКНА' остаётся активным т.е. его нельзя закрыть без сохранения изменений.
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39992840
va_kochnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YesNo('Сохранить изменения ?') - это вызов самодельной функции, в которой осуществляется переход в другой блок? И на момент выполнения clear_block текущим является не 'ИМЯ_МОЕГО_БЛОКА', а какой-то другой?
Тогда перед CLEAR_BLOCK надо выполнить явный переход в него.
GO_BLOCK(('ИМЯ_МОЕГО_БЛОКА');
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39992845
1) Да, YesNo() это самопальная русскоговорящая процедура с вопросом о сохранеии.
2) Я изначально догадался поставить GO_BLOCK(('ИМЯ_МОЕГО_БЛОКА'); перед вызовом clear_block(NO_COMMIT);
Проблема clear_block() скорее всего в валидации, обязательности заполнения полей блока или ещё в чём-то.
Хотя сколько я не колдовал вокруг этих тем, ничего не помогает.
А вопрос то простой : как отменить внесённые в окне изменения и заставить движок формсов не задавать вопрос
на английском языке "Do you want to save the changes you have made ?"
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39992872
va_kochnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктор Радченко,

У 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
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39992899
NO_VALIDATE тоже пробовал. Уровень сообщений - посмотрю.
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39993031
KLAYD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Виктор Радченко,

а если просто RAISE FORM_TRIGGER_FAILURE?
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39993228
KLAYD
Виктор Радченко,

а если просто RAISE FORM_TRIGGER_FAILURE?


Происходит прекращение работы триггера и окно остаётся на месте.
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39993229
va_kochnev
Виктор Радченко,

Можно попробовать:
clear_block(NO_COMMIT);


Вот это всё-таки помогло. Ковырял валидацию и вдруг заработало.
Большое спасибо, va_kochnev !!!
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39993427
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктор Радченко ,ответ на вопрос:"Как избежать запроса движка формс "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.
      set_record_property(v_rec_no, v_block_name, status, new_status);
      set_record_property(v_rec_no, v_block_name, status, query_status);



Откат при необходимости выполняется на сервере БД, Затем выполняется execute_query блока.
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39993453
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medium

...расписал в теме : https://www.sql.ru/forum/1327701/izmenenie-dannyh-cherez-formy-oralce-forms-drugoy-podhod
Ключевые действия ...

IMHO мы сталевары, мы делаем жесть
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39993477
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Leonid Kudryavtsev
Леонид, буду благодарен за любую критику предлагаемого мной подхода. Желательно в соответствующем топике.
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39993487
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medium
2 Leonid Kudryavtsev
Леонид, буду благодарен за любую критику предлагаемого мной подхода. Желательно в соответствующем топике.

а чего там критиковать?

там даже не написано, зачем такая странная конструкция понадобилась и зачем

взяли и выкинули на помойку всю работу Forms с БД и написали свою. Нафига?

p.s.
поэтому в соответствующем топике ничего писать не хочу, что бы флейм не разводить
...
Рейтинг: 0 / 0
Как избежать запроса "Do you want to save the changes you have made ?"
    #39993720
Робя, успокойтесь. Формс 6i уже выкинут на свалку истории, как и мой любимый Visual FoxPro 9.
Но вопросы остаются и я очень рад, что мне помогают. Всем лучики счастья и сладкого кодинга)))
ЗЫ До смысла письма medium ещё не дорос, но с Леонидом Кудрявцевым согласен.
Не стоит устраивать вивисекцию только потому, что люди делавшие продукт думали по другому.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Как избежать запроса "Do you want to save the changes you have made ?"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]