Привет Всем !
Прошу подсказки Уважаемого сообщества в следующем вопросе:
Имеется Browse-окно програмы работающей с внешним устройстовм (кассовым аппаратом), т.е. окно, в котором есть ограничение (Single value) на номер смены и фильтр на номер документа (то бишь чека). Обе переменные локальные. Когда завершен расчет по чеку, то ставится маркер в TRUE на записи позиции чека что они проданы, счетчик номеров документов(чеков) увеличивается на единицу и вызывается обновление экрана: ForceRefresh = TRUE; DO RefreshWindow. Локальная переменная номера чека объявлена в сторожевых полях. Так вот иногда (именно не могу выявить закономерность) содержимое окна, после изменения значения переменной, которая указана в выражении фильтра Browse не изменяется, т.е. содержимое старого "чека" не уходит и экран не обновляется(не становится пустым) под новый чек.
Быть может в этой ситуации, для достижения стабильности, следует выполнять еще какие-то манипуляции или как-то по иному использовать переменные ивызывать обновление cодержимого Browse ?
Заренее благодарен,
Сергей
Сочи
Написал: ClaList(2)
сбои в обновлении Browse
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Привет
Была такая же проблема,(не проходило обновление по сторожевому полю, (field1) пришлось заводить дублирующую переменную (field11), в которую бы писалось предыдущее значение основной переменной:
после того как,field1(счетчик)увеличился на 1
Кстати вместо refreshwindow, я пользую refreshpage(где это допустимо), работает стабильнее со сторожевыми полями(во многих случаях refreshwindow почему то не работает).
Дмитрий Гудков gudkov_net@mail.ru
Написал: ClaList(2)
Была такая же проблема,(не проходило обновление по сторожевому полю, (field1) пришлось заводить дублирующую переменную (field11), в которую бы писалось предыдущее значение основной переменной:
после того как,field1(счетчик)увеличился на 1
Код: Выделить всё
if field11<field1
forcerefresh=true
do refreshwindow
field11=field1
.
Дмитрий Гудков gudkov_net@mail.ru
Написал: ClaList(2)
Зря, батенька, зря!:)))
RefreshWindow вызывает рутинку SelectSort, которая намного более функциональна чем RefreshPage.
Кстати, если необходимо, SelectSort сама уже вызывает рутинку RefreshPage.
Так что САМЫЙ универсальный вариант - вызов именно рутинки RefreshWindow. А для того, что-бы все обновлялось как надо, без сбоев, просто установи перед ее вызовом
ForceRefresh = True.
Ну, а если не хочешь, что-бы при этом "дергались" другие бровзы на этом окне, то или используй методы ШВС для оптимизации перерисовки разных бровзов, или организуй ручками простейший селект прямо в RefreshWindow.
Благо - в ней достаточно нужных точек вставок!
Удачи!
=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Написал: ClaList(2)
RefreshWindow вызывает рутинку SelectSort, которая намного более функциональна чем RefreshPage.
Кстати, если необходимо, SelectSort сама уже вызывает рутинку RefreshPage.
Так что САМЫЙ универсальный вариант - вызов именно рутинки RefreshWindow. А для того, что-бы все обновлялось как надо, без сбоев, просто установи перед ее вызовом
ForceRefresh = True.
Ну, а если не хочешь, что-бы при этом "дергались" другие бровзы на этом окне, то или используй методы ШВС для оптимизации перерисовки разных бровзов, или организуй ручками простейший селект прямо в RefreshWindow.
Благо - в ней достаточно нужных точек вставок!
Удачи!
=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Написал: ClaList(2)