Страница 1 из 2

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 06 Апрель 2021, 10:33
kreator
Форма работает в режиме ViewRecord. Как сделать чтобы при её закрытии броуз не обновлялся? Без танцев с бубном. С11, ABC.

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 06 Апрель 2021, 10:45
Игорь Столяров
Какое-то из двух утверждений - ложно. ;) Либо Form работает не ViewRecord, либо Browse не обновляется.

Потому, что обновление Browse выполняется при возврате флага GlobalResponse = RequestCompleted,
а в режиме GlobalRequest = ViewRecord, Form этого не делает ... ну или надо проверять все эти флаги.

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 07 Апрель 2021, 17:43
kreator
Игорь Столяров писал(а): 06 Апрель 2021, 10:45 Потому, что обновление Browse выполняется при возврате флага GlobalResponse = RequestCompleted,
Это ложное утверждение. С чего Вы это взяли?

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 07 Апрель 2021, 18:01
Игорь Столяров
kreator писал(а): 07 Апрель 2021, 17:43 С чего Вы это взяли?
Из того, что метод вызова FORM (ThisWindow.Run) возвращает именно полученную из Form значение GlobalResponse.
Я уточню: мы сейчас говорим об обновлении BROWSE после отработки FORM в том или ином режиме.
Потому, что BROWSE может ещё обновляться, например, при возврате фокуса в окно или изменении флагов RESET FIELDS.
У Вас в Window опция AUTO DISPLAY случайно не включена ?

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 07 Апрель 2021, 18:43
kreator
Browse обновляется всегда. Независимо от значения GlobalResponse. Почему сомнения? И почему должно быть по-другому? Просто я думал есть некий параметр, который может это поведение изменить. AUTO DISPLAY выключен. По-моему эту опцию надо убрать или хотя бы объявить "deprecated".

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 07 Апрель 2021, 19:55
Игорь Столяров
kreator писал(а): 07 Апрель 2021, 18:43 Просто я думал есть некий параметр, который может это поведение изменить.
Возможно мы говорим об одном, но смотрим на разное. Я не знаю поведения шаблонов при работе с SQL драйвером.
Список при выходе из FORM без изменений или режима просмотр не обновляется по банальной причине: в этом нет смысла.

При закрытии FORM всегда выполняется метод ThisWindow.Reset(), возможно он что-то у Вас тянет за собой.
Проверьте на не замученном нарзаном коде примера Invoice. Отсутствие обновления списка даже визуально видно ...

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 08 Апрель 2021, 0:18
kreator
Вы на одном пользователе не заметите. Поставьте стоп в метод ResetQueue и увидите. Я бы не задавал вопрос.
В многопользовательской среде обновление актуально всегда. Ну может быть не всегда. Вот у меня тот случай, что не надо обновления.

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 08 Апрель 2021, 5:43
Игорь Столяров
kreator писал(а): 08 Апрель 2021, 0:18 Поставьте стоп в метод ResetQueue и увидите.
Результат предсказуем и ежу понятен. :) Но сделал как Вы сказали.

1.jpg
1.jpg (98.28 КБ) 2477 просмотров

При открытии списка: 1
Обновление списка: 1
Resize Window: 2
После добавления или изменения записи (FORM): 2
Удаление записи (без FORM): 1
После просмотра записи (FORM) - не вызывается.

Как-то так ... ;) Я повторюсь - обновление списка видно визуально.
Но у меня список открывается в нормальном режиме Loading Method = Page и драйвер TPS.
И ещё: у меня при открытии FORM в режиме просмотра кнопка ?OK скрывается, а ?Cancel переименовывается в "Закрыть".

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 08 Апрель 2021, 13:17
kreator
Ладно. Проведу тест. У меня тоже всё стандартно. Может в "Loading Method" причина? Я "Page" не использую. Даже интересно стало! Как так?

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 13 Апрель 2021, 13:17
kreator
Протестировал и у себя и на стандартных примерах. ResetQueue срабатывает всегда. Независимо от драйвера, способа загрузки...

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 13 Апрель 2021, 13:39
Игорь Столяров
Игорь Столяров писал(а): 08 Апрель 2021, 5:43 у меня при открытии FORM в режиме просмотра кнопка ?OK скрывается, а ?Cancel переименовывается в "Закрыть".
А вот это пробовали ? Попробуйте выходить из FORM через кнопку ?CANCEL.

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 13 Апрель 2021, 23:04
kreator
Я так и делаю.

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 13 Апрель 2021, 23:13
Игорь Столяров
Других идей современная наука не предлагает.
При выходе из FORM с отменой нет события для обновления BROWSE - т.к. в этом действии нет смысла.
При закрытии окна FORM фокус переходит к окну BROWSE, других событий нет.
Если у Вас нет какого-то действия на это событие - то мы имеем дело с чудом. А чудес не бывает. ;)

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 14 Апрель 2021, 9:37
kreator
Классы, шаблоны в этом направлении я вроде не правил. Остаюсь при своём мнении. При работе в многопользовательском режиме броуз должен обновляться по любому. Иначе как увидеть изменения?

Browse-Form, ABC. Не обновлять Browse после закрытия Form.

Добавлено: 14 Апрель 2021, 11:08
Игорь Столяров
kreator писал(а): 14 Апрель 2021, 9:37 Иначе как увидеть изменения.
Пойдём логическим путём.
Если Ваше утверждение верно - то BROWSE должен обновляться ведь не только при открытии FORM ?
Иначе получается, что мы не увидим "изменения через сеть" пока не дёрнем FORM. Печаль ! ;)

Вообще для этих целей существует TIMER, который может генерить события через заданный интервал
и по этому событию можно уже обновлять BROWSE на предмет изменений через сеть и т.д.

Что касается многопользовательской работы - то вопрос ведь только в доступе к файлам БД.
Я даже не пытаюсь угадывать, что у Вас там с классами и шаблонами.
Но Вы написали, что у Вас обновление BROWSE происходит на штатных примерах - и вот это непонятно. :(