powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Синхронизация данных в формах
9 сообщений из 9, страница 1 из 1
Синхронизация данных в формах
    #36970059
Ura!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две формы, одна выводит список документов, другая предназначена для редактирования этих документов. Сделано в двух разных формах. Из первой, списочной, вызывается вторая карточка.
Вопрос вот в чём, как синхронизировать данные в списке и в карточке. Может есть какие-то уже проверенные наработки?
Например меняю я какое-то поле в карточке, сохраняю, выхожу из неё и в списке вижу уже исправленное это поле.
Сейчас сделано через перезапрос данных в списке, но это не всегда работает корректно да и обновление иногда выходит долго. Может есть какой другой вариант?
...
Рейтинг: 0 / 0
Синхронизация данных в формах
    #36970092
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему две разные формы?

Делайте просто два разных окна и/или канвы на одной форме. Тогда и проблем с синхронизацией не будет. IMHO.
...
Рейтинг: 0 / 0
Синхронизация данных в формах
    #36970169
Ura!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну есть такой вариант. Но он тоже был отметён по двум соображениям:
1) Быстродействие. В карточке документа может быть куча связок с другими таблицами (я уж не говорю про блоки мастер-детэйл), вычисляемых полей, которые для списка совсем не нужны. Из- за этого список тормозит и переход со строки на строку тоже происходит не быстро.
2) Выход из карточки приходится отслеживать, чтобы сохранить именно при выходе, а не при переходе на новую строчку или при выходе из списка.
...
Рейтинг: 0 / 0
Синхронизация данных в формах
    #36970241
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ura!Ну есть такой вариант. Но он тоже был отметён по двум соображениям:
1) Быстродействие. В карточке документа может быть куча связок с другими таблицами (я уж не говорю про блоки мастер-детэйл), вычисляемых полей, которые для списка совсем не нужны. Из- за этого список тормозит и переход со строки на строку тоже происходит не быстро.


Подчиненные блоки мастер-детэйл конечно нужно "врубать" только при необходимости. Все остальное (куча связок с другими таблицами, вычисляемые поля) особенно тормозить не должно.

У нас в системе (начало 2000-х гг., компьютеры уровня Celeron 200-600 Mhz) было разнесено. На одной канве - быстрый поиск и список (в том числе возможно отображение вычисляемых полей, данных (описаний) подтянутых из справочников). На отдельной канве (закрывающую при работе первую) - редактирование. Подчиненные таблицы (мастер-детайл) задействовались только когда пользователь входил в режим редактирования карточки/документа. Одновременно гулять по списку и редактировать - пользователь не мог.

Формы конечно получались огромные, но мы их генерили программно. Одна из форм была больше 5Mb, >500 блоков (детайлы), и >3.500 итемов. По скорости - Forms вполне тянул.

Ura!2) Выход из карточки приходится отслеживать, чтобы сохранить именно при выходе, а не при переходе на новую строчку или при выходе из списка.


Ну вообще, сохраняться должно/будет при нажатие на кнопку 'Save' )))

Если правда у Вас Multi-Document интерфейс и Вы хотите одновременно работать и со списком и с кучей карточек-документов. Тогда синхронизация стандартная. Сохранить документ и в другом окне повторно выполнить запрос ))). Пользователь открывал кучу окон - пользователь пускай и разбирается.
...
Рейтинг: 0 / 0
Синхронизация данных в формах
    #36971073
OmegaMale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ura!,

Если подумать, то можно сделать так - сохранять изменённые значения в какой-то промежуточный буфер, а потом обновлять данные на родительской форме при закрытии редактора. Сохранять можно в:
1. CREATE_GROUP('EDIT_SINGLE_ITEM', GLOBAL_SCOPE);
2. :GLOBAL
3. пакетная переменная PL/SQL library
4. хранимый пакет
5. файл или еще что-то.

После того, как изменили поля в списке, то установить записи QUERY_STATUS. Будет быстро, но потребует дополнительного "диспетчера" изменений.
...
Рейтинг: 0 / 0
Синхронизация данных в формах
    #36971079
OmegaMale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ura!Ну есть такой вариант. Но он тоже был отметён по двум соображениям:
1) Быстродействие. В карточке документа может быть куча связок с другими таблицами (я уж не говорю про блоки мастер-детэйл), вычисляемых полей, которые для списка совсем не нужны. Из- за этого список тормозит и переход со строки на строку тоже происходит не быстро.

чтобы когда не нужно не обновлялись данные детализации можно просто подредактировать стандартные процедуры, генерируемые билдером :)
...
Рейтинг: 0 / 0
Синхронизация данных в формах
    #36971653
Ura!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
Попробую вариант с промежуточным буфером. Только формы работают в разных сессиях так что варианты
3. пакетная переменная PL/SQL library
4. хранимый пакет
отпадают.
Про
1. CREATE_GROUP('EDIT_SINGLE_ITEM', GLOBAL_SCOPE);
не знал - почитаю, может оно и подойдёт.
...
Рейтинг: 0 / 0
Синхронизация данных в формах
    #36971761
OmegaMale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ura!,

хотя, что-то я странно написал - можно же просто сделать перезапрос одной только записи, которая была изменена. вручную обновить поля и сбросить признак изменения.
...
Рейтинг: 0 / 0
Синхронизация данных в формах
    #36971952
Ura!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OmegaMale,

Точно, можно и так. Только проверить, что пользователь не ушёл со строки которую редактировал.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Синхронизация данных в формах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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