Синхронизировать отображение значения полей в двух окнах
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- vea
- Бывалый
- Сообщения: 51
- Зарегистрирован: 01 Сентябрь 2005, 15:48
- Откуда: Иваново
- Контактная информация:
Синхронизировать отображение значения полей в двух окнах
Кларион 8.0 б.8973, ВинХР.
Есть tps-база. Два пользователя запускают программу. У одного окно для отслеживания (без действий), у другого (таких несколько и каждый работает только с одной, своей, записью базы) окно с возможностью изменения одного из полей (например, Prizn) в 0 или 1.
Как обновить окно первого пользователя при изменении поля Prizn вторым пользователем?
Просмотрел все в данной части форума и в части готовых решений и шаблонов. Ничего не высмотрел.
Думаю, что можно бы как-то обновлять очередь, отследив условие изменения поля в одной из записей. Но, как отловить изменение поля в одной из записей. Количество записей равно количеству вторых пользователей...
Спасибо за любую информацию.
Есть tps-база. Два пользователя запускают программу. У одного окно для отслеживания (без действий), у другого (таких несколько и каждый работает только с одной, своей, записью базы) окно с возможностью изменения одного из полей (например, Prizn) в 0 или 1.
Как обновить окно первого пользователя при изменении поля Prizn вторым пользователем?
Просмотрел все в данной части форума и в части готовых решений и шаблонов. Ничего не высмотрел.
Думаю, что можно бы как-то обновлять очередь, отследив условие изменения поля в одной из записей. Но, как отловить изменение поля в одной из записей. Количество записей равно количеству вторых пользователей...
Спасибо за любую информацию.
С уважением, vea
-
- ✯ Ветеран ✯
- Сообщения: 5158
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Синхронизировать отображение значения полей в двух окнах
А не нужно ничего. Нужно на таймер повесить обновление броуза и всё.
We are hard at work… for you. 

- vea
- Бывалый
- Сообщения: 51
- Зарегистрирован: 01 Сентябрь 2005, 15:48
- Откуда: Иваново
- Контактная информация:
Синхронизировать отображение значения полей в двух окнах
Понял. Но в каком эмбеде повесить обновление? Спасибо!
С уважением, vea
Синхронизировать отображение значения полей в двух окнах
В свойствах окна прописать Timer (например, Timer(500) и обрабатывать Event:Timer ....
...
Of EVENT:Timer
Brwn.ResetQueue(Reset:Queue)
Очевидный недостаток - передёргивание очереди и позиции курсора.
Я бы всё-таки создал лог действий пользователя и проверял дату-время последнего обновления или количество записей в логе.
...
Of EVENT:Timer
Brwn.ResetQueue(Reset:Queue)
Очевидный недостаток - передёргивание очереди и позиции курсора.
Я бы всё-таки создал лог действий пользователя и проверял дату-время последнего обновления или количество записей в логе.
-
- ✯ Ветеран ✯
- Сообщения: 5158
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Синхронизировать отображение значения полей в двух окнах
На таймер. В свойствах окна ставишь Timer (не забудь, он в сотых секундах), после этого в Embeds появится в разделе "Window Events" пункт "Timer". Там пиши (не важно до или после Parent Call) - BRW1.ResetQueue(Reset:Queue).
We are hard at work… for you. 

- vea
- Бывалый
- Сообщения: 51
- Зарегистрирован: 01 Сентябрь 2005, 15:48
- Откуда: Иваново
- Контактная информация:
Синхронизировать отображение значения полей в двух окнах
Спасибо. Все дело в том, что первый пользователь - это просто наблюдатель, у него нет возможности что-то делать с базой (его может и не быть), только будет запускаться окно, чтобы видеть ход работы вторых пользователей...
А вот запись лога и проверка количества записей в нем, да еще и с прочтением его обновленных записей - интересная мысль... Спасибо.
А вот запись лога и проверка количества записей в нем, да еще и с прочтением его обновленных записей - интересная мысль... Спасибо.
С уважением, vea
- vea
- Бывалый
- Сообщения: 51
- Зарегистрирован: 01 Сентябрь 2005, 15:48
- Откуда: Иваново
- Контактная информация:
Синхронизировать отображение значения полей в двух окнах
kreator, спасибо огромное! Очевидно, вы поняли, что я несколько плаваю в понятиях и очень просто подсказали... Спасибо!
С уважением, vea
- Дед Пахом
- Старичок
- Сообщения: 3285
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 48 раз
- Контактная информация:
Синхронизировать отображение значения полей в двух окнах
а можно ещё мессаджи слать с рабочего компьютера на компьютер наблюдателя при изменении данных, но это посложнее будет, чем таймер Гёте.
С уважением, ДП
-
- Бывалый
- Сообщения: 61
- Зарегистрирован: 12 Декабрь 2008, 12:09
- Откуда: Верхний Уфалей
- Контактная информация:
Синхронизировать отображение значения полей в двух окнах
Ведение логов для этой задачи, собственно довесок, логически ни чего не решающий но хавающий ресурсы.
С тем же успехом можно перечитывать нужные записи и сравнивать предварительно сохраненные значения полей (если изменилось - обновляем окно)
ну и вариант с таймером, а что бы лишний раз окно не дергать, обновлять его только если данные изменились.
Изменения отслеживать по аттрибуту - time полученному из DIRECTORY(file) - ..(но это нужно проверить, всегда ли актуально значение time). Насколько я понял по задаче, это есть таблица, в ней количество записей равно количеству пользователей.
С тем же успехом можно перечитывать нужные записи и сравнивать предварительно сохраненные значения полей (если изменилось - обновляем окно)
ну и вариант с таймером, а что бы лишний раз окно не дергать, обновлять его только если данные изменились.
Изменения отслеживать по аттрибуту - time полученному из DIRECTORY(file) - ..(но это нужно проверить, всегда ли актуально значение time). Насколько я понял по задаче, это есть таблица, в ней количество записей равно количеству пользователей.
-
- ✯ Ветеран ✯
- Сообщения: 1038
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Синхронизировать отображение значения полей в двух окнах
Без обид, но утверждение спорное - надо али не надо доп. учёт - лог и прочее - знает только автор...vd-vuf писал(а):Ведение логов для этой задачи, собственно довесок, логически ни чего не решающий...

-
- Бывалый
- Сообщения: 61
- Зарегистрирован: 12 Декабрь 2008, 12:09
- Откуда: Верхний Уфалей
- Контактная информация:
Синхронизировать отображение значения полей в двух окнах
Когда автор обращается на форум с вопросом, уместно изложить решение, если оно есть конечно. А вот флудить не уместно. угу. без обид?Ал писал(а):Без обид, но утверждение спорное - надо али не надо доп. учёт - лог и прочее - знает только автор...vd-vuf писал(а):Ведение логов для этой задачи, собственно довесок, логически ни чего не решающий...
-
- ✯ Ветеран ✯
- Сообщения: 1038
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Синхронизировать отображение значения полей в двух окнах
...vea писал(а):Спасибо. Все дело в том, что первый пользователь - это просто наблюдатель, у него нет возможности что-то делать с базой (его может и не быть), только будет запускаться окно, чтобы видеть ход работы вторых пользователей...
А вот запись лога и проверка количества записей в нем, да еще и с прочтением его обновленных записей - интересная мысль... Спасибо.

видимо есть причины у автора не раскрывать подробности...
А если вам показалось что действительно
есть кнопочка [!], "угу. без обид?"vd-vuf писал(а):Ал писал(а):... А вот флудить не уместно. угу. без обид?vd-vuf писал(а):Ведение логов для этой задачи, собственно довесок, логически ни чего не решающий...
Ну и на этом "перепалку" закроем, ОК?
ps
Если пользовать GETFILEDATE|GETFILETIME можно конечно проследить обновления файла, но момент есть такой - программка может обновить собственно файл и дата-время соотв. будет вроде бы ОК, а его содержание останется прежним...
- vea
- Бывалый
- Сообщения: 51
- Зарегистрирован: 01 Сентябрь 2005, 15:48
- Откуда: Иваново
- Контактная информация:
Синхронизировать отображение значения полей в двух окнах
Друзья, не спорьте. Все ответы мне интересны. Заданный вопрос решил по таймеру. Получилось отлично. Лог-файл тоже интересен,т.к. я буду вести лог-файл для протоколирования действий всех пользователей и мог бы воспользоваться им. Но, заданный вопрос решен.
Теперь решаю обратную задачу: при изменении записи в окне первого пользователя надо автоматом найти значение другого поля. Например, Pole2 (эта часть, в данной теме, - черный ящик, и не обсуждается) и полученное значение поля Pole2 отобразить в окне второго пользователя (пользователей).
Действительно, число записей базы (строк очереди в броузе) равно количеству вторых пользователей (действительно работающих в программе, каждый в своем окне). Кстати, их окна - формы.
Ну, и чтобы прояснить: наверно уже догадались, что это электронная очередь... Всем спасибо за участие.
Теперь решаю обратную задачу: при изменении записи в окне первого пользователя надо автоматом найти значение другого поля. Например, Pole2 (эта часть, в данной теме, - черный ящик, и не обсуждается) и полученное значение поля Pole2 отобразить в окне второго пользователя (пользователей).
Действительно, число записей базы (строк очереди в броузе) равно количеству вторых пользователей (действительно работающих в программе, каждый в своем окне). Кстати, их окна - формы.
Ну, и чтобы прояснить: наверно уже догадались, что это электронная очередь... Всем спасибо за участие.
С уважением, vea
- vea
- Бывалый
- Сообщения: 51
- Зарегистрирован: 01 Сентябрь 2005, 15:48
- Откуда: Иваново
- Контактная информация:
Синхронизировать отображение значения полей в двух окнах
Добавлю, что очередь без терминала... Но, с экраном... 

С уважением, vea