|
|
|
Синхронизация данных в формах
|
|||
|---|---|---|---|
|
#18+
Есть две формы, одна выводит список документов, другая предназначена для редактирования этих документов. Сделано в двух разных формах. Из первой, списочной, вызывается вторая карточка. Вопрос вот в чём, как синхронизировать данные в списке и в карточке. Может есть какие-то уже проверенные наработки? Например меняю я какое-то поле в карточке, сохраняю, выхожу из неё и в списке вижу уже исправленное это поле. Сейчас сделано через перезапрос данных в списке, но это не всегда работает корректно да и обновление иногда выходит долго. Может есть какой другой вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2010, 16:10 |
|
||
|
Синхронизация данных в формах
|
|||
|---|---|---|---|
|
#18+
А почему две разные формы? Делайте просто два разных окна и/или канвы на одной форме. Тогда и проблем с синхронизацией не будет. IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2010, 16:19 |
|
||
|
Синхронизация данных в формах
|
|||
|---|---|---|---|
|
#18+
Ну есть такой вариант. Но он тоже был отметён по двум соображениям: 1) Быстродействие. В карточке документа может быть куча связок с другими таблицами (я уж не говорю про блоки мастер-детэйл), вычисляемых полей, которые для списка совсем не нужны. Из- за этого список тормозит и переход со строки на строку тоже происходит не быстро. 2) Выход из карточки приходится отслеживать, чтобы сохранить именно при выходе, а не при переходе на новую строчку или при выходе из списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2010, 16:42 |
|
||
|
Синхронизация данных в формах
|
|||
|---|---|---|---|
|
#18+
Ura!Ну есть такой вариант. Но он тоже был отметён по двум соображениям: 1) Быстродействие. В карточке документа может быть куча связок с другими таблицами (я уж не говорю про блоки мастер-детэйл), вычисляемых полей, которые для списка совсем не нужны. Из- за этого список тормозит и переход со строки на строку тоже происходит не быстро. Подчиненные блоки мастер-детэйл конечно нужно "врубать" только при необходимости. Все остальное (куча связок с другими таблицами, вычисляемые поля) особенно тормозить не должно. У нас в системе (начало 2000-х гг., компьютеры уровня Celeron 200-600 Mhz) было разнесено. На одной канве - быстрый поиск и список (в том числе возможно отображение вычисляемых полей, данных (описаний) подтянутых из справочников). На отдельной канве (закрывающую при работе первую) - редактирование. Подчиненные таблицы (мастер-детайл) задействовались только когда пользователь входил в режим редактирования карточки/документа. Одновременно гулять по списку и редактировать - пользователь не мог. Формы конечно получались огромные, но мы их генерили программно. Одна из форм была больше 5Mb, >500 блоков (детайлы), и >3.500 итемов. По скорости - Forms вполне тянул. Ura!2) Выход из карточки приходится отслеживать, чтобы сохранить именно при выходе, а не при переходе на новую строчку или при выходе из списка. Ну вообще, сохраняться должно/будет при нажатие на кнопку 'Save' ))) Если правда у Вас Multi-Document интерфейс и Вы хотите одновременно работать и со списком и с кучей карточек-документов. Тогда синхронизация стандартная. Сохранить документ и в другом окне повторно выполнить запрос ))). Пользователь открывал кучу окон - пользователь пускай и разбирается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2010, 17:04 |
|
||
|
Синхронизация данных в формах
|
|||
|---|---|---|---|
|
#18+
Ura!, Если подумать, то можно сделать так - сохранять изменённые значения в какой-то промежуточный буфер, а потом обновлять данные на родительской форме при закрытии редактора. Сохранять можно в: 1. CREATE_GROUP('EDIT_SINGLE_ITEM', GLOBAL_SCOPE); 2. :GLOBAL 3. пакетная переменная PL/SQL library 4. хранимый пакет 5. файл или еще что-то. После того, как изменили поля в списке, то установить записи QUERY_STATUS. Будет быстро, но потребует дополнительного "диспетчера" изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2010, 09:22 |
|
||
|
Синхронизация данных в формах
|
|||
|---|---|---|---|
|
#18+
Ura!Ну есть такой вариант. Но он тоже был отметён по двум соображениям: 1) Быстродействие. В карточке документа может быть куча связок с другими таблицами (я уж не говорю про блоки мастер-детэйл), вычисляемых полей, которые для списка совсем не нужны. Из- за этого список тормозит и переход со строки на строку тоже происходит не быстро. чтобы когда не нужно не обновлялись данные детализации можно просто подредактировать стандартные процедуры, генерируемые билдером :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2010, 09:29 |
|
||
|
Синхронизация данных в формах
|
|||
|---|---|---|---|
|
#18+
Спасибо. Попробую вариант с промежуточным буфером. Только формы работают в разных сессиях так что варианты 3. пакетная переменная PL/SQL library 4. хранимый пакет отпадают. Про 1. CREATE_GROUP('EDIT_SINGLE_ITEM', GLOBAL_SCOPE); не знал - почитаю, может оно и подойдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2010, 12:45 |
|
||
|
Синхронизация данных в формах
|
|||
|---|---|---|---|
|
#18+
Ura!, хотя, что-то я странно написал - можно же просто сделать перезапрос одной только записи, которая была изменена. вручную обновить поля и сбросить признак изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2010, 13:15 |
|
||
|
|

start [/forum/topic.php?fid=51&fpage=25&tid=1878836]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
36ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
3ms |
| others: | 12ms |
| total: | 206ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...