powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Обновление формы
5 сообщений из 5, страница 1 из 1
Обновление формы
    #40103565
Я_Новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день! Очень надеюсь на помощь! Имеется форма на которую навешана персональная настройка. При нажатии на определенную кнопку, процедура выполняется (в таблице значения обновляются) но для того чтобы увидеть результат в самой форме нужно в нее перезайти.
Пробовала воспользоваться этим советом https://www.sql.ru/forum/970231/obnovlenie-formy?hl=?????????? ????? ?????????
Открывается форма, которая возвращает непонятные данные, не относящиеся к записи для которой выполнялось обновление.
Буду очень благодарна за помощь
...
Рейтинг: 0 / 0
Обновление формы
    #40103663
va_kochnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я_Новичок,
Перед шагом персонализации, который выполняет EXECUTE_QUERY, можно добавить шаг, который для блока, в котором выполняется запрос, меняет свойство DEFAULT_WHERE, добавляя условие для выбора нужной записи.
Но после выполнения запроса желательно это свойство блока вернуть в исходное состояние. Иначе кроме данной записи другие выбрать не получится без перезахода в форму.
...
Рейтинг: 0 / 0
Обновление формы
    #40103703
Я_Новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
va_kochnev,
Спасибо! Но не совсем поняла как и какое условие добавить для выбора нужной записи. Если таких записей может быть много для каждой организации
...
Рейтинг: 0 / 0
Обновление формы
    #40103719
va_kochnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я_Новичок,

Вашу ситуацию я не знаю, поэтому точный рецепт дать не могу.

Допустим, она следующая:
1. В форме есть блок БЛОК, который базируется на таблице с первичнеым ключом RECORD_ID.
2. Пользователь выбирает нужную строку и жмет какую-то кнопку.
3. По нажатию кнопки отабатывает персонализация, которая запускает процедуру, вносящую изменения в строку таблицы. После чего выполняется запрос в блоке и в нем выбирается измененная строка.

Если требутеся именно такое поведение, то в персонализации после действия запуска процедуры добавляем шаги
1. Запоминаем текущее значение default_where
Код: plsql
1.
2.
3.
4.
5.
Действие="Свойство"
Тип объекта="Глобальная переменная"
Объект-приемник="XX_OLD_DEFAULT_WHERE"
Имя свойства="VALUE"
Значение= "=${block.element_types.default_where}"



2. Устанавливаем новое значение свойства default_where
Код: plsql
1.
2.
3.
4.
5.
Действие="Свойство"
Тип объекта="Блок"
Объект-приемник="БЛОК"
Имя свойства="DEFAULT_WHERE"
Значение= "='RECORD_ID='||:БЛОК.RECORD_ID"



3. Выполняем запрос
Код: plsql
1.
2.
3.
Тип = Встроенный
Встроенный тип = DO_KEY
Аргумент = EXECUTE_QUERY



4. Восстанавливаем значение свойства DEFAULT_WHERE
Код: plsql
1.
2.
3.
4.
5.
Действие="Свойство"
Тип объекта="Блок"
Объект-приемник="БЛОК"
Имя свойства="DEFAULT_WHERE"
Значение= "=:GLOBAL.XX_OLD_DEFAULT_WHERE"




Если же в блоке изначально выбрано много строк, и надо вставать на нужную строку, давить кнопку, видеть изменение полей формы, а потом идти на следующую строку, чтобы проделать то же самое, то можно попробовать обойтись без перезапроса.
Для этого после выполнения процедуры добавить действия, которые для каждого измененного поля формы выбирает значение из таблицы.
Код: plsql
1.
2.
3.
4.
5.
Действие="Свойство"
Тип объекта="Позиция"
Объект-приемник=":БЛОК.<измененное поле>"
Имя свойства="VALUE"
Значение= "=select <измененное поле> from таблица where record_id=:БЛОК.RECORD_ID"


После чего добавляем действия
Код: plsql
1.
2.
3.
4.
5.
Действие="Свойство"
Тип объекта="Позиция"
Объект-приемник=":БЛОК.<измененное поле>"
Имя свойства="ITEM_IS_VALID"
Значение= "TRUE"



Это чтобы форма считала запись не измененной и не начинала какие-то свои манипуляции выполнять (если в самой процедуре есть commit и лишний действий не требуется).
...
Рейтинг: 0 / 0
Обновление формы
    #40103736
Я_Новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
va_kochnev,
Спасибо огромное за подробный ответ! Буду пробовать!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Обновление формы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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