Минимальное разрешение экрана для приложений

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7515
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 53 раза

Минимальное разрешение экрана для приложений

Сообщение Игорь Столяров »

finsoftrz писал(а): 07 Июнь 2024, 8:13 В продуктах питания это очень удобно
Тоже вариант. Но есть вопрос о скорости.
Если создаётся отдельная выборка по поисковому запросу (или отчёт) - то можно моделировать нечёткий поиск или
варианты с поиском контента по "know-how". А вот от контекстного фильтра в BROWSE с ISAM БД хочется ещё скорости ... :)

В своё время, мы долго сравнивали InString() и Match() именно в фильтрах BROWSE и нащупали эмпирически тот вариант,
когда при потере всего 10% скорости поиска добавляется возможность искать по штатным маскам, которые все знают. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4754
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 38 раз

Минимальное разрешение экрана для приложений

Сообщение finsoftrz »

Скорость зависит от количества записей в таблице. Для оптимизации в справочнике товаров, где их относительно много, используется специальная закладка и режим поиска с фиксацией результата. Смысл в том, что обычный фильтр перестраивается при каждом изменении или переключении фокуса. Фиксированный поиск выполняется один раз по запросу, результат складывается в виде идентификаторов найденных записей в кьюшку. На практике такая фильтрация в справочнике товаров с 30 - 40 тыс записями работает достаточно шустро, не вызывая дискомфорта.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7515
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 53 раза

Минимальное разрешение экрана для приложений

Сообщение Игорь Столяров »

finsoftrz писал(а): 07 Июнь 2024, 8:42 результат складывается в виде идентификаторов найденных записей в кьюшку
Ну т.е. это комплексный поисковый запрос. У меня тупо штатный фильтр одной строкой. :)
Здесь ещё есть вопрос по актуализации данных ... сейчас как раз этим занимаюсь.
Есть пользователи, которые неделями (а то и дольше) не закрывают даже не программу, а и окна в ней.

И хотят дёрнув мышку и переключившись на окно продолжить работу. А на сервере уже совсем другая жись. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4754
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 38 раз

Минимальное разрешение экрана для приложений

Сообщение finsoftrz »

Вот скриншот для пояснения.
filtr.jpg
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4754
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 38 раз

Минимальное разрешение экрана для приложений

Сообщение finsoftrz »

Игорь Столяров писал(а): 07 Июнь 2024, 8:57
finsoftrz писал(а): 07 Июнь 2024, 8:42 результат складывается в виде идентификаторов найденных записей в кьюшку
Ну т.е. это комплексный поисковый запрос. У меня тупо штатный фильтр одной строкой. :)
Здесь ещё есть вопрос по актуализации данных ... сейчас как раз этим занимаюсь.
Есть пользователи, которые неделями (а то и дольше) не закрывают даже не программу, а и окна в ней.

И хотят дёрнув мышку и переключившись на окно продолжить работу. А на сервере уже совсем другая жись. :)
Когда окно получает фокус, информация в броузе автоматически обновляется. Вроде как у всех так. А если открыта форма на редактирование, то другой пользователь редактировать не может, только смотреть (read only). При попытке открыть на редактирование выводится сообщение, кто с этим уже работает.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4754
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 38 раз

Минимальное разрешение экрана для приложений

Сообщение finsoftrz »

В приведенном скриншоте с фиксированным отбором фиксируется только список записей. Содержимое колонок обновляется на регулярной основе, как обычно.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7515
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 53 раза

Минимальное разрешение экрана для приложений

Сообщение Игорь Столяров »

Ну интерфейсная реализация понятна - список, поле, кнопа ... :)
Открытые карточки (FORM) вроде бы отучили бросать, а вот со списками не всё так однозначно ...

Упрощённый пример. Открывает юзер список с документами, предположим за текущий день 05.06.2024 ... и ушёл.
Вернулся через два дня 07.06.2024. Содержимое списка по фокусу обновилось - OK !
Он добавляет документ есстественно текущей датой 07.06.2024, сохраняет и не видит его в списке
(период отображения в списке остался 05.06.2024). После десятой попытки добавить документ звонит в тех. поддержку ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4754
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 38 раз

Минимальное разрешение экрана для приложений

Сообщение finsoftrz »

При попытке добавления записи можно проверять на вхождение текущей даты в заданный в журнале период. По хорошему еще и после добавления сообщать, если новая запись не удовлетворяет условиям отбора. Я не заморачиваюсь, хотя надо бы.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 5047
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 23 раза

Минимальное разрешение экрана для приложений

Сообщение kreator »

finsoftrz писал(а): 07 Июнь 2024, 9:15 Когда окно получает фокус, информация в броузе автоматически обновляется. Вроде как у всех так.
Не у всех. По-моему, это особенность шаблонов Clarion. В ABC от этого отказались. Но есть проперть для включения такого поведения. Неправильно всё время дёргать сервак при получении фокуса окном.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7515
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 53 раза

Минимальное разрешение экрана для приложений

Сообщение Игорь Столяров »

kreator писал(а): 07 Июнь 2024, 15:55 Неправильно всё время дёргать сервак при получении фокуса окном
Ну в общем-то, никто и не заставляет. ;)
Генерится событие, а дёргать сервак или произносить плохое слово - это уже как запрограммите. :)
Конкретно в ABC ещё нужно отсекать открытие окна (при котором и так всё обновляется).

Код: Выделить всё

    OF EVENT:GainFocus
       If Not Loc:WinOpen then Loc:WinOpen = True  ! Пропускаем открытие окна
       else
          Brw1.ResetSort(True)
          ThisWindow.Reset
       end
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4754
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 38 раз

Минимальное разрешение экрана для приложений

Сообщение finsoftrz »

kreator писал(а): 07 Июнь 2024, 15:55
finsoftrz писал(а): 07 Июнь 2024, 9:15 Когда окно получает фокус, информация в броузе автоматически обновляется. Вроде как у всех так.
Не у всех. По-моему, это особенность шаблонов Clarion. В ABC от этого отказались. Но есть проперть для включения такого поведения. Неправильно всё время дёргать сервак при получении фокуса окном.
Разумеется, лучше с протухшей информацией работать. :lol:
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4754
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 38 раз

Минимальное разрешение экрана для приложений

Сообщение finsoftrz »

Игорь Столяров писал(а): 07 Июнь 2024, 9:28 Ну интерфейсная реализация понятна - список, поле, кнопа ... :)
Открытые карточки (FORM) вроде бы отучили бросать, а вот со списками не всё так однозначно ...

Упрощённый пример. Открывает юзер список с документами, предположим за текущий день 05.06.2024 ... и ушёл.
Вернулся через два дня 07.06.2024. Содержимое списка по фокусу обновилось - OK !
Он добавляет документ есстественно текущей датой 07.06.2024, сохраняет и не видит его в списке
(период отображения в списке остался 05.06.2024). После десятой попытки добавить документ звонит в тех. поддержку ... :)
Выводить сообщение в таком случае все таки желательно. Видел в одной программе, не на кларионе. В принципе, сделать несложно, несколько строчек на языке шаблонов.
1. Объявляем глобальную переменную long c thread.
2. В форме редактирования на выходе присваиваем ей значение идентификатора отредактированной записи, если она сохранена успешно (иначе 0).
3. В броузе в коде обработки кнопок Добавить (Копировать) и Изменить после успешного редактирования записи текущей становится эта запись, если она попадает в установленные условия. Если не попадает, то текущей становится ближайшая запись, попадающая в условия. Поэтому просто сравниваем значения идентификаторов записей и выдаем сообщение при расхождении.

change.jpg
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 5047
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 23 раза

Минимальное разрешение экрана для приложений

Сообщение kreator »

finsoftrz писал(а): 07 Июнь 2024, 16:10 Разумеется, лучше с протухшей информацией работать.
Она и так протухшая. Когда работает десяток пользователей есть смысл обновлять список несколько раз в секунду. Ещё есть практика отображать пользователю только его данные, тогда протухшей информации почти не будет.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4754
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 38 раз

Минимальное разрешение экрана для приложений

Сообщение finsoftrz »

kreator писал(а): 08 Июнь 2024, 23:31
finsoftrz писал(а): 07 Июнь 2024, 16:10 Разумеется, лучше с протухшей информацией работать.
Она и так протухшая. Когда работает десяток пользователей есть смысл обновлять список несколько раз в секунду. Ещё есть практика отображать пользователю только его данные, тогда протухшей информации почти не будет.
Режим отображения только своих документов тоже используем. Например, в журнале отгрузочных накладных, когда работает несколько операторов, это удобно.
Обновление информации в журналах по таймеру видел еще в 1с77, у них для этого была специальная настройка периодичности. Но мне такое не понравилось. Более естественно, на мое восприятие, обновлять информацию синхронно с работой пользователя (редактированием, скроллировнием, переключением фокуса).
Обновление информации по таймеру сейчас используется только в так называемых "табло". Например, в производстве кухонь и шкафов купе по индивидуальны проектам. В цехе одновременно работают с десятком заказов (чтобы оптимизировать использование оборудования и реже перенастраивать пилы), проводя их по участкам обработки. Мастер выбирает заказы в специальный список и отмечает по мере прохождение по участкам. Этот список заказов выводится в виде табло, в котором колонки соответствуют участкам, ячейки на пересечении строки заказа и колонки участка обработки заливаются цветом после отметки. Плюс выводится срок изготовления заказа, который тоже выделяется цветом по принципу светофора. Они повесили 2 больших телевизора в цех и офис. На телевизор выводится эта таблица заказов и обновляется по таймеру с определенной периодичностью. В результате наглядно видно, что происходит в цехе.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7515
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 53 раза

Минимальное разрешение экрана для приложений

Сообщение Игорь Столяров »

finsoftrz писал(а): 09 Июнь 2024, 9:02 На телевизор выводится эта таблица заказов
Круто ! :)
У нас давно была похожая задача с очередью в регистратуру частной поликлиники.
Тогда ещё не было терминалов - квиток с номером (как в гардеробе) выдавала девочка.

В отличии от существующих - было сразу видно в какое окошко назначен квиток,
сколько страждущих перед тобой конкретно в это окошко и, при необходимости,
всё это динамически переназначалось для оптимизации скорости обслуживания.
Но всё похерилось - пришла новая власть и поменяли на какую-то 1С с терминалом.
Работает тупо и неинтересно. :(
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить