15.12.2022 13:42
У пользователей Купца новогоднее настроение! Функция установки заставки у всех работающих пользователей (требуются права администратора).

17.12.2022 14:33
В настройке параметров пользователя добавлена возможность выбора шрифта контролов - MS Sans Serif, Segoe UI, Verdana, Tahoma, Areal. Настройка действует во всех окнах Купца. Для сохранения пропорций текста в размерный ряд добавлено значение 9. Таким образом, по умолчанию исторически используется шрифт MS Sans Serif с размером 8 (опционально 9,10), который хорошо подходит для старых типов мониторов. Остальные шрифты могут быть установлены с размером 9 или 10. Более крупные или более мелкие шрифты применять пока целесообразности не видно. Список поддерживаемых шрифтов может быть расширен, если найдутся хорошие кандидаты. На скриншоте окно настройки параметров пользователя с установленным шрифтом Verdana 10.

20.12.2022 09:03
Я уже писал, что проект ФинСофт:КупецЪ базируется на фрейворке, основа которого была разработана в 2003-2004 годах. С того времени все изменения, вносимые во фреймворк, обкатывались напрямую в этом проекте, а затем включались в некоторые заказные разработки и дополнительные приложения. На днях возникла мысль о том, что неплохо было бы сделать обратный процесс - задонатить актуальное состояние фреймворка из Купца в чистое от прикладного функционала приложение. Смысл в том, чтобы при возникновении потребности можно было быстро зарегистрировать новое приложение в менеджере проектов (процесс занимает примерно 10-15 мин), а затем, имея сразу весь функционал фреймворка, сосредоточиться на прикладном решении. Такая технологическая сборка фреймворка и была сделана в течении последних пары дней. В нее вошел весь базовый функционал, включающий распределение прав доступа, логирование изменений в базе данных и логирование событий, блок технического обслуживания, поддержка и настройка многооконного интерфейса, версионирование модулей, поддержка возможности переключений файловой и серверной баз данных (topspeed файловый и клиент-серверный, action zen), настройка печатных форм и таблиц, встраиваемый пошаговый отладчик кода и многое другое. Всего 42 системные таблицы в базе данных и около 200 процедур. Общий размер exe+dll примерно 6 мб.
Миниатюры
Нажмите на изображение для увеличения
Название: framework.jpg
Просмотров: 44
Размер:	157.8 Кб
ID:	11948  
09.02.2023 22:04
Последнее время приходится заниматься, в основном, решением разных прикладных вопросов. Я про это стараюсь не писать, так как не все можно, а про что можно, не очень интересно.
В начале года, помимо прочего, всегда приходится в той или иной степени разбираться с изменениями в законодательстве. Очень странные люди принимают очень странные законы. В этом году их бомбануло с зарплатным законодательством. В целом, методику ведения учета проработали, январские аванс и зарплату начислили и выплатили. Остался вопрос с отражением в форме 6-НДФЛ декабрьской зарплаты, которая выплачивалась в январе. В основном, все уже ученые, и закрывают расчеты по зарплате в декабре. С проблемами столкнулась только одна небольшая организация. После прочтения разъяснений на этот счет от налоговиков, предложили не обращать на них внимания, пока не будет подробных примеров, как поступать в той или иной ситуации. Вполне возможно, что таких примеров и не дождемся, так как с точки здравого смысла и калькулятора много нестыковок. А когда состояние такой неопределенности, лучше придерживаться тех правил, которые действовали в отчетном периоде. То есть отражать доход и налог в месяце начисления (декабре), а не включать в доход следующего года (в январе), как предлагают налоговики. Основание железобетонное, при необходимости можно подать уточненную форму позже.

Мелкие изменения были сделаны в оформлении в Купце.
Введено подчеркивание синей линией текущего поля ввода (см. первый скриншот). Это модная тема сейчас, после выхода Windows 11. Другие варианты не прижились, а так понравилось.
В настройке параметров пользователя добавилась возможность автоматической смены обоев по расписанию (см. второй скриншот). Как в галерее в Windows. Думаю, что подберем примерно 15 вариантов обоев с видами природы, на каждый месяц и на отдельные праздничные периоды (например, новый год).
Миниатюры
Нажмите на изображение для увеличения
Название: scr1.jpg
Просмотров: 48
Размер:	243.6 Кб
ID:	11973   Нажмите на изображение для увеличения
Название: scr2.jpg
Просмотров: 37
Размер:	282.6 Кб
ID:	11974  
23.05.2023 12:15
Давно не писал сюда. За прошедшее время появились некоторые интересные разработки.

Ввод фасовки в Web модуле.
Этот механизм используется для заказа различной фасуемой на производстве продукции, в частности, кулинарии. В Купце, после получения заказов из Web модуля, в плане производства подсчитывается количество лотков.



Информация об идентификаторе электронной помощи и список иконок в окне.
Во всех окнах Купца имеется комбинация клавиш Ctrl+Alt+S, при нажатии на которую делается снимок активного окна и есть возможность его редактирования и отправки на электронную почту разработчика. Так изначально задумывалось, но в реальной работе у пользователей практически не востребовано. Зато данный режим давно прижился в процессе разработки. Кроме снимка выводится название модуля и название процедуры окна, а название процедуры автоматически помещается в буфер обмена. Это позволяет быстро находить процедуру в среде разработки. Теперь сюда добавились идентификатор в системе электронной помощи и список используемых в окне иконок. Идентификатор в системе электронной помощи помогает в несколько кликов найти нужный раздел для внесения изменений (у меня используется Help&Manual).




Иконки линкуются к приложению. Время от времени попадается какая-нибудь иконка, на которую хочется заменить используемую. Иконок в наборе много (~500), и просмотр списка иконок в окне позволяет быстро найти соответствующую. Кроме этого, в Купце есть специальный каталог icons. Если в нем есть одноименная иконка, то при открытии любого окна произойдет подмена. То есть мы можем, не пересобирая проект, увидеть, насколько новая иконка вписывается в интерфейс, и, если подошла, заменить на нее в стандартном наборе. После очередной сборки проекта новая иконка будет прилинкована к приложению.



Сумматор с контрольной лентой.
В Купце с первых версий имеется сумматор числовых значений с помощью горячих клавиш Ctrl=, CtrlShift+, CtrlShift-. Эти клавиши можно использовать после выделения числового значения в ячейках таблиц, в числовых полях ввода, в строковых полях ввода (блочное выделение чисел) во всех окнах. Идея была подсмотрена в 1С77, предназначено для упрощения выверки расчетов. Однако данный механизм был не очень нагляден, так как суммирование происходит вслепую, мы можем затем вставить куда-нибудь общий результат. Чтобы устранить этот недостаток, в панели калькулятора была добавлена кнопка-флажок включения режима сумматора. Когда включено, то показывается контрольная лента и все операции эхом отображаются в ней, независимо от того, в каких окнах происходит суммирование.



Названия полей базы данных в диалоговых окнах приложений.
Когда база данных становится большой и счет полей в ней идет на тысячи, оказывается удобным определить соответствующее поле прямо в окне приложения. Это в ряде случаев заметно ускоряет поиск и использование названия поля при написании кода. Для этих целей во всех окнах Купца подключена комбинация клавиш CtrlAltI. Работает для различных контролов - полей ввода, спинов, флажков, опций, ссылок на справочники и т.п.



Основы интерфейса.
Долгое время для обучения работы с интерфейсом Купца использовался набор роликов. Теперь решено было дополнить в виде файла chm. Возможно, со временем будет собрано и в других форматах. Данный файл открывается отдельно от основного файла электронной помощи, поскольку включенные в него скриншоты утяжеляют его в плане размера. Вызывается из меню Помощь.



Так выглядит содержание.

27.06.2023 16:44
В последнее время в FinSoft Framework появилась пара идей.

Оптимизация процесса отладки изменений.
Обычная ситуация, вносим какие-то изменения, затем заходим в программу и проверяем их в работе. При этом надо пройти диалог авторизации, возможно, какие-то окна с сообщениями, запустить нужное диалоговое окно из меню. Когда изменение не простое и сразу все без ошибок сделать не получается, то приходится повторять это раз за разом. Идея такая, чтобы включить специальный режим отладки, и автоматом проходить авторизацию и запускать нужное диалоговое окно. Данная функция доступна на компьютере разработчика.
В окне, в котором вызывается и тестируется функция, жмем клавиши Ctrl+Alt+S, в системном информационном окне жмем кнопку "Отладка", которая включает или выключает режим отладки (на первом скриншоте). При включении в параметрах пользователя сохраняются название dll и название процедуры, а при выключении они очищаются. После включения и последующих запусках программы (пока не отключим режим) мы сразу попадаем в нужное окно. Ограничение в том, что таким образом нельзя попасть в форму редактирования, но можно в окно, из которого она вызывается. Чаще всего отлаживаются какие-то новые отчеты, там сразу попадаем, куда надо, с установками из предыдущего запуска.

Изготовление заглушек.
Запустив в очередной раз Купца и увидев, что это отъело у системы 100 мб оперативки, задумался, а нет ли способов облегчить. Например, если у клиента оптовая торговля и ему не нужны производство, зарплата, бухгалтерия и т.п., то можно было бы облегчить дистрибутив, положив вместо соответствующих полнофункциональных dll заглушки. Заглушка это процедура с тем же названием и прототипом, но вместо рабочего кода содержит только сообщение об отключении. Не знаю, потребуется ли такой механизм в дальнейшем при нынешних характеристиках железа, но почему бы не сделать, так как это оказалось не сложно. Каждой dll в кларионе обычно соответствует репозитарий app. Все процедуры в app включаются в модули в соответствии с настройкой. Чаще это одна процедура на модуль, но может быть и больше. При создании нового модуля среда присваивает ему имя файла с сырцами, в который будет сгенерен код. Идея изготовления заглушек в том, что мы с помощью небольшого утилитного шаблона просматриваем все модули и процедуры в app, на место файла с сырцами перезаписываем свою пустышку и компилируем в dll. На втором скриншоте показан вызов утилитного шаблона. Таким образом, за пару щелчков можно любую dll превратить в заглушку. Чтобы вернуть назад, достаточно запустить сборку с безусловной кодогенерацией.
Миниатюры
Нажмите на изображение для увеличения
Название: debugIncl.jpg
Просмотров: 35
Размер:	167.5 Кб
ID:	12054   Нажмите на изображение для увеличения
Название: plug.jpg
Просмотров: 32
Размер:	223.2 Кб
ID:	12055  
10.10.2024 18:27
Появилось первое решение, использующее в продакшене прямой доступ к базе данных Купца с мобильных устройств. Это небольшое приложение на тему Service Desk, адаптированное под работу на смартфонах. Довольно распространенная задача, когда надо с мобильных устройств подключаться к определенному разделу большой настольной системы. Само приложение достаточно простое. Магазины торговой сети размещают в системе заявки в ит и хоз отделы в Продмаге (настольное приложение в магазинах, передающее информацию в базу данных Купца на сервере в центральном офисе). Сотрудники этих отделов получают оповещение в телеграм и со смартфонов отмечают выполнение заявок. Заявители, соответственно, контролируют, действительно ли выполнена заявка. Еще одна категория пользователей, которая не работает в информационной системе торговой сети, но использует этот сервис, размещает заявки тоже через данное приложение, но не со смартфонов, а на настольных компьютерах в веб браузере. В работе используются девайсы с андроидом и айос. В Купце ведется статистика в разных разрезах. Несколько скриншотов приложения.
Миниатюры
Нажмите на изображение для увеличения
Название: servd1.jpg
Просмотров: 19
Размер:	73.8 Кб
ID:	12578   Нажмите на изображение для увеличения
Название: servd2.jpg
Просмотров: 18
Размер:	50.0 Кб
ID:	12579   Нажмите на изображение для увеличения
Название: servd3.jpg
Просмотров: 18
Размер:	56.7 Кб
ID:	12580  
15.10.2024 14:23
Уже писал, что проект КупецЪ использует рантайм (набор dll системы разработки) clarion6 образца 2007 года. Это хорошо обкатанные и стабильные библиотеки. Время от времени возвращаюсь к тестированию актуального рантайма clarion11, выпущенного пару лет назад. Сейчас последний используется во вспомогательных приложениях, когда надо организовать удаленный доступ к определенному функционалу Купца через интернет с обычных компьютеров или мобильных устройств в веб броузере (известные пользователи подключаются с неизвестных девайсов или не хочется лишний раз заморачиваться с безопасностью). В этом случае альтернативы нет, так как технология anyscreen работает только с актуальной версией рантайма. Но использовать актуальный рантайм в основных приложениях я не спешу, в нем прошли определенные изменения, которые надо учитывать, плюс общее впечатление, что он хуже протестирован в целом, чем старый. На данный момент имеется сборка Купца с новым рантаймом, которая и гоняется в разных режимах. Спешить особо некуда, разница между рантаймами, в основном, в улучшении внешнего дизайна приложений, что для основного проекта вторично.

По мере тестирования сборки Купца с новым рантаймом иногда появляются идеи, как нечто подобное организовать сейчас. В частности, недавно в Купце появилась "тема Windows10", которая предназначена для получения более современного внешнего вида. Тема выбирается в настройке пользователя, наряду с "темной темой". Для актуализации этой темы были предприняты следующие шаги.
1. При сборке проекта автоматически создается копия основного исполняемого exe файла приложения с добавлением буквы "m". То есть, основной файл называется fsopt.exe, копия fsoptm.exe.
Смысл в том, что для копии подкладывается файл манифеста fsoptm.exe.manifest. Основной exe запускает приложение в обычном классическом режиме. Копия запускает приложение в режиме,
прописанном в манифесте для используемой операционной системы (win7, win10), то есть операционная система автоматически переназначает вызовы гуя на соответствующую библиотеку.
2. В настройках пользователя устанавливаем шрифт в окнах на segue ui размером 10, как рекомендует МС.
3. В процедуре стилизации, автоматически вызываемой после открытия диалоговых окон, устанавливаем flat у полей ввода и таблиц list. Это позволяет утончить обрамление соответствующих контролов.
4. Там же у кнопок (кроме маленьких с одной пиктограммой) снимаем признак flat (по умолчанию включен), чтобы кнопки были засерены.
5. Там же активную закладку sheet красим в белый, остальные в оттенок серого.

Получается вид, достаточно близкий к оформлению, принятому в win10 и win11. На первом скриншоте диалог Купеца с "темой Windows10", на втором диалог Купца в сборке с рантаймом clarion11. В последнем flat кнопки не засерены (как принято по умолчанию), стиль закладок со скосами (моя хотелка), заголовок таблицы светлый.
Миниатюры
Нажмите на изображение для увеличения
Название: c6_1.jpg
Просмотров: 25
Размер:	123.1 Кб
ID:	12583   Нажмите на изображение для увеличения
Название: c11_1.jpg
Просмотров: 22
Размер:	108.6 Кб
ID:	12584  
07.11.2024 22:03
Тема оформления интерфейса приложения на днях получила продолжение. Писал как-то, что в предыдущей версии рантайма среды разработки, которая используется в Купце, имеется ограничение, связанное с отсутствием возможности управлять цветом заголовков таблиц. В некоторых случаях, например, в "темной теме", хотелось бы его обойти. Наконец, удалось это сделать.

За отрисовку контролов в окнах отвечает рантайм. Он фильтрует необходимые события от Windows, обрабатывая их автоматически. Но имеется возможность сабклассить обработчик событий для окон и для отдельных контролов. То есть, переназначить на свою процедуру обработки, а после выполнения в ней нужного функционала передать управление на стандартный обработчик. На глаза попался старый шаблон англоязычного коллеги на эту тему, который он выложил в открытый доступ. Этот шаблон и предназначался для прорисовки заголовков таблиц средствами win api. Я переоформил его в класс, исправил некоторые ошибки и подключил этот класс себе во фреймворк, чтобы автоматически вызывать в нужных ситуациях. Самое интересное было не просто сабклассить обработчик, но и убрать все это внутрь класса, чтобы в прикладном приложении осталась "одна строчка кода". Управлять цветом заголовков таблиц не так просто, как может показаться на первый взгляд. Колонки могут скрываться по условиям, группироваться, прокручиваться горизонтально.

Несколько позже выяснилось, что в районе 2008 года был коммерческий продукт, который выполнял прорисовку интерфейса средствами win api для разных типов контролов. Сейчас этот продукт не поддерживается и не развивается, так как наиболее ценные наработки были портированы в следующую версию рантайма среды разработки. Поскольку в продукт входил набор классов в сырцах, и эти сырцы можно найти, они являются хорошим примером, как все это организуется. То есть, в теории, можно нарисовать в приложении все, что угодно, не ограничиваясь тем, что предлагает рантайм. Весь вопрос в целесообразности, так как прямая работа с win api для прикладных программистов все же достаточно трудоемка. Поэтому пока остановился на управлении цветом заголовков таблиц. Остальное и так вполне нормально. Казалось бы, зачем с этим заморачиваться, лучше перейти на актуальную версию рантайма, но там есть свои нюансы.

Приведу 2 скриншота с темной и светлой темами, на которых изменен цвет заголовков таблиц.
Миниатюры
Нажмите на изображение для увеличения
Название: theme1.jpg
Просмотров: 15
Размер:	222.1 Кб
ID:	12625   Нажмите на изображение для увеличения
Название: theme2.jpg
Просмотров: 14
Размер:	241.9 Кб
ID:	12626  
09.11.2024 15:13
В догонку к предыдущему сообщению. Будет, конечно, дополнительное тестирование, но походу удалось полностью стилизовать интерфейс по указанной технологии. Кроме управления заголовками таблиц заработали еще стилизация закладок, полей ввода, спинов и дропов, то есть то, что не отрабатывалось до конца с помощью манифеста. Теперь комплект. Переключение оформлено в Купце в виде отдельной темы, которая устанавливается в параметрах пользователя. Режим с улучшенной прорисовкой контролов изолирован от режима работы в классическом стиле и не повлияет на пользователей, которые привыкли к классике.
Миниатюры
Нажмите на изображение для увеличения
Название: tab1.jpg
Просмотров: 13
Размер:	54.2 Кб
ID:	12628  
Часовой пояс GMT +3, время: 13:15.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.