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

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

Здесь ещё есть вопрос по актуализации данных ... сейчас как раз этим занимаюсь.
Есть пользователи, которые неделями (а то и дольше) не закрывают даже не программу, а и окна в ней.
И хотят дёрнув мышку и переключившись на окно продолжить работу. А на сервере уже совсем другая жись.

Минимальное разрешение экрана для приложений
Добавлено: 07 Июнь 2024, 9:11
finsoftrz
Вот скриншот для пояснения.
Минимальное разрешение экрана для приложений
Добавлено: 07 Июнь 2024, 9:15
finsoftrz
Игорь Столяров писал(а): 07 Июнь 2024, 8:57
finsoftrz писал(а): 07 Июнь 2024, 8:42
результат складывается в виде идентификаторов найденных записей в кьюшку
Ну т.е. это комплексный поисковый запрос. У меня тупо штатный фильтр одной строкой.

Здесь ещё есть вопрос по актуализации данных ... сейчас как раз этим занимаюсь.
Есть пользователи, которые неделями (а то и дольше) не закрывают даже не программу, а и окна в ней.
И хотят дёрнув мышку и переключившись на окно продолжить работу. А на сервере уже совсем другая жись.
Когда окно получает фокус, информация в броузе автоматически обновляется. Вроде как у всех так. А если открыта форма на редактирование, то другой пользователь редактировать не может, только смотреть (read only). При попытке открыть на редактирование выводится сообщение, кто с этим уже работает.
Минимальное разрешение экрана для приложений
Добавлено: 07 Июнь 2024, 9:18
finsoftrz
В приведенном скриншоте с фиксированным отбором фиксируется только список записей. Содержимое колонок обновляется на регулярной основе, как обычно.
Минимальное разрешение экрана для приложений
Добавлено: 07 Июнь 2024, 9:28
Игорь Столяров
Ну интерфейсная реализация понятна - список, поле, кнопа ...

Открытые карточки (FORM) вроде бы отучили бросать, а вот со списками не всё так однозначно ...
Упрощённый пример. Открывает юзер список с документами, предположим за текущий день 05.06.2024 ... и ушёл.
Вернулся через два дня 07.06.2024. Содержимое списка по фокусу обновилось - OK !
Он добавляет документ есстественно текущей датой 07.06.2024, сохраняет и не видит его в списке
(период отображения в списке остался 05.06.2024). После десятой попытки добавить документ звонит в тех. поддержку ...

Минимальное разрешение экрана для приложений
Добавлено: 07 Июнь 2024, 10:06
finsoftrz
При попытке добавления записи можно проверять на вхождение текущей даты в заданный в журнале период. По хорошему еще и после добавления сообщать, если новая запись не удовлетворяет условиям отбора. Я не заморачиваюсь, хотя надо бы.
Минимальное разрешение экрана для приложений
Добавлено: 07 Июнь 2024, 15:55
kreator
finsoftrz писал(а): 07 Июнь 2024, 9:15
Когда окно получает фокус, информация в броузе автоматически обновляется. Вроде как у всех так.
Не у всех. По-моему, это особенность шаблонов Clarion. В ABC от этого отказались. Но есть проперть для включения такого поведения. Неправильно всё время дёргать сервак при получении фокуса окном.
Минимальное разрешение экрана для приложений
Добавлено: 07 Июнь 2024, 16:05
Игорь Столяров
kreator писал(а): 07 Июнь 2024, 15:55
Неправильно всё время дёргать сервак при получении фокуса окном
Ну в общем-то, никто и не заставляет.

Генерится событие, а дёргать сервак или произносить плохое слово - это уже как запрограммите.

Конкретно в ABC ещё нужно отсекать открытие окна (при котором и так всё обновляется).
Код: Выделить всё
OF EVENT:GainFocus
If Not Loc:WinOpen then Loc:WinOpen = True ! Пропускаем открытие окна
else
Brw1.ResetSort(True)
ThisWindow.Reset
end
Минимальное разрешение экрана для приложений
Добавлено: 07 Июнь 2024, 16:10
finsoftrz
kreator писал(а): 07 Июнь 2024, 15:55
finsoftrz писал(а): 07 Июнь 2024, 9:15
Когда окно получает фокус, информация в броузе автоматически обновляется. Вроде как у всех так.
Не у всех. По-моему, это особенность шаблонов Clarion. В ABC от этого отказались. Но есть проперть для включения такого поведения. Неправильно всё время дёргать сервак при получении фокуса окном.
Разумеется, лучше с протухшей информацией работать.

Минимальное разрешение экрана для приложений
Добавлено: 07 Июнь 2024, 22:58
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. В броузе в коде обработки кнопок Добавить (Копировать) и Изменить после успешного редактирования записи текущей становится эта запись, если она попадает в установленные условия. Если не попадает, то текущей становится ближайшая запись, попадающая в условия. Поэтому просто сравниваем значения идентификаторов записей и выдаем сообщение при расхождении.
Минимальное разрешение экрана для приложений
Добавлено: 08 Июнь 2024, 23:31
kreator
finsoftrz писал(а): 07 Июнь 2024, 16:10
Разумеется, лучше с протухшей информацией работать.
Она и так протухшая. Когда работает десяток пользователей есть смысл обновлять список несколько раз в секунду. Ещё есть практика отображать пользователю только его данные, тогда протухшей информации почти не будет.
Минимальное разрешение экрана для приложений
Добавлено: 09 Июнь 2024, 9:02
finsoftrz
kreator писал(а): 08 Июнь 2024, 23:31
finsoftrz писал(а): 07 Июнь 2024, 16:10
Разумеется, лучше с протухшей информацией работать.
Она и так протухшая. Когда работает десяток пользователей есть смысл обновлять список несколько раз в секунду. Ещё есть практика отображать пользователю только его данные, тогда протухшей информации почти не будет.
Режим отображения только своих документов тоже используем. Например, в журнале отгрузочных накладных, когда работает несколько операторов, это удобно.
Обновление информации в журналах по таймеру видел еще в 1с77, у них для этого была специальная настройка периодичности. Но мне такое не понравилось. Более естественно, на мое восприятие, обновлять информацию синхронно с работой пользователя (редактированием, скроллировнием, переключением фокуса).
Обновление информации по таймеру сейчас используется только в так называемых "табло". Например, в производстве кухонь и шкафов купе по индивидуальны проектам. В цехе одновременно работают с десятком заказов (чтобы оптимизировать использование оборудования и реже перенастраивать пилы), проводя их по участкам обработки. Мастер выбирает заказы в специальный список и отмечает по мере прохождение по участкам. Этот список заказов выводится в виде табло, в котором колонки соответствуют участкам, ячейки на пересечении строки заказа и колонки участка обработки заливаются цветом после отметки. Плюс выводится срок изготовления заказа, который тоже выделяется цветом по принципу светофора. Они повесили 2 больших телевизора в цех и офис. На телевизор выводится эта таблица заказов и обновляется по таймеру с определенной периодичностью. В результате наглядно видно, что происходит в цехе.
Минимальное разрешение экрана для приложений
Добавлено: 10 Июнь 2024, 7:14
Игорь Столяров
finsoftrz писал(а): 09 Июнь 2024, 9:02
На телевизор выводится эта таблица заказов
Круто !

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