Вопрос про курсор
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Вопрос про курсор
Бывают ещё ситуации, когда обработка выполняется достаточно долго и заранее неизвестно, какая её часть уже выполнена. Обычно это какая-то работа через интернет. Я в этом случае вывешиваю бесконечный термометр, когда доходит до конца, то начинает сначала. Под термометром выводится счётчик времени работы. Через некоторое плановое время, предполагаемую продолжительность обработки, рядом с термометром появляется кнопка Прервать.
C6/C11, ШВС, tps/btrieve.
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Вопрос про курсор
Ну кто бы ещё мог до такого додуматься?!
Стандартная "фишка" встроенная в шаблоны. Лишь, "Прервать" не вывожу, т.к. пользователь сам виноват, что жмёт не подумавши.
Это я только кажусь дураком! На самом деле я полный идиот!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Вопрос про курсор
Когда через интернет, то не факт, что обработка когда-нибудь будет завершена сама по себе корректно. Поэтому и делается люфт во времени, чтобы пользователь раньше времени не мог нажать прерывание. А когда крутится дольше запланированного, то тогда пользователь решает сам, прерывать или нет. Мы заранее не можем предугадать все ситуации. В стандартном шаблоне есть возможность отложенной активации кнопки прерывания?
C6/C11, ШВС, tps/btrieve.
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Вопрос про курсор
Прогресс-бар не идёт, а стоит на нулевой отметке 5 секунд, а потом за секунду пролетает 100 процентов. Некрасиво.Губин Игорь писал(а): ↑24 Апрель 2023, 19:25Тут как раз никакой разницы, прогресс бар должен идти все 6 секунд. Но, в целом, мысль правильная.
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Вопрос про курсор
Я как правило сначала получаю количество результирующих записей. На SQL это недорого. И тогда прогресс-бар работает правильно (а также закраска на кнопке приложения в панели задач). Но это ABC. И если действительно нужен прогресс-бар.
We are hard at work… for you.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Вопрос про курсор
Я написал, что при работе через интернет. Например, послали запрос в Меркурий, он вернул его идентификатор, а потом требуется ждать ответа, периодически дергая Меркурий на предмет результата по этому идентификатору. А ответ может иногда вообще не прийти, бесконечный статус запрос в обработке.
C6/C11, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Вопрос про курсор
Неважно интернет, не интернет. Если невозможно обеспечить корректную работу прогресс-бара, то он не нужен. "Бесконечный" только пугает и путает пользователя.
We are hard at work… for you.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Вопрос про курсор
Для этого и активируется кнопка прервать. Прогресс-бар доходит до конца, затем начинает с начала, под ним время с начала обработки. Все корректно. Какие варианты в приведенном примере? Я не вижу. Вручную нажимать какую-нибудь кнопку получить результат не проходит по определенным причинам (лень углубляться).
C6/C11, ШВС, tps/btrieve.
- ingasoftplus
- Ветеран
- Сообщения: 425
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Вопрос про курсор
Товарищи программисты - вы уходите в дебри. Все очень просто. Прогресс-бар контрол имеет четкие параметры, один из них
RANGE
Specifies the range of values the progress bar displays (PROP:RANGE). If omitted, the default range is zero (0) to one hundred (100).
Т.е. предполагается, что мы должны знать значания Границ (с и до) до момента использования. Вот и все - тогда не будет никаких бесконечных прогрессов. Если границы заранее не известны - НЕ применяйте Прогресс-бар
RANGE
Specifies the range of values the progress bar displays (PROP:RANGE). If omitted, the default range is zero (0) to one hundred (100).
Т.е. предполагается, что мы должны знать значания Границ (с и до) до момента использования. Вот и все - тогда не будет никаких бесконечных прогрессов. Если границы заранее не известны - НЕ применяйте Прогресс-бар
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Вопрос про курсор
Спасибо, что поделились мудростью !ingasoftplus писал(а): ↑27 Апрель 2023, 15:05 Если границы заранее не известны - НЕ применяйте Прогресс-бар
Вопрос из регионов: а как тогда показать, что идёт выполнение и вот это вот всё не зависло нафиг вообще ?
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Вопрос про курсор
Речь не про бесконечный прогресс-бар, а про повторяющийся. Так понятнее? Вопрос про альтернативу в приведенном примере остается. Как информировать пользователя о выполнении обработки за пределами приложения, если время и содержание ее заранее не известно. Я думаю, что вопрос риторический.ingasoftplus писал(а): ↑27 Апрель 2023, 15:05 Товарищи программисты - вы уходите в дебри. Все очень просто. Прогресс-бар контрол имеет четкие параметры, один из них
RANGE
Specifies the range of values the progress bar displays (PROP:RANGE). If omitted, the default range is zero (0) to one hundred (100).
Т.е. предполагается, что мы должны знать значания Границ (с и до) до момента использования. Вот и все - тогда не будет никаких бесконечных прогрессов. Если границы заранее не известны - НЕ применяйте Прогресс-бар
C6/C11, ШВС, tps/btrieve.
- ingasoftplus
- Ветеран
- Сообщения: 425
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Вопрос про курсор
рядом с прогресс баром я вывожу строку, типа: Выполнено 125 из 1000Игорь Столяров писал(а): ↑27 Апрель 2023, 15:36 а как тогда показать, что идёт выполнение и вот это вот всё не зависло нафиг вообще ?
1000 при этом наша верхняя граница, которая известна. Порой масштаб прогресс бара не позволяет точно увидеть его изменение, если значений (верхняя граница) много.
или показывать %% выполнения с 5 знаками после запятой! Очень информативно и завараживает смотреть, как он изменяется! Сразу видно - что происходит чудо и оно работает!!!
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Вопрос про курсор
Всё понятно! Процесс доходит до конца и начинается сначала. Программа явно глючит.
Как вариант - показывать "Журнал действий" (что-то типа работы с ftp в Total Commander'е).Игорь Столяров писал(а): ↑27 Апрель 2023, 15:36 Вопрос из регионов: а как тогда показать, что идёт выполнение и вот это вот всё не зависло нафиг вообще ?
We are hard at work… for you.