Форум по программам и оборудованию > > >

Легким движением руки програмера УС Лэнд превращается в ... или пустим "козла в огород"?

15.02.2019 22:05


07.02.2019 17:24
AndreyZh
 
В плане отработки алгоритмов и подходов для заказной задачи, которую возможно потенциально буду делать разработал глобальную (ые) технологию для программ семейства "УС Лэнд". Одна из "заморочек" данной задачи: для разных контрагентов алгоритмы (формулы) вычисления и обновления информации могут различаться и они изначально неизвестны. Как возможный подход: программный код, привязанный к клиенту хранить в отдельном файле, изменять его и выполнять уже в неизменяемой программе.

Кроме этого периодически возникали задачи: поиска, группирования, изменения информации, которые не решались в рамках программ.

Вот придумал... и технология доступна ВЕЗДЕ (во всех списках) любых программ систем "УС Land"... или "УС Лэнд:ЕГАИС". Хотя очень сомневаюсь, что нужно её широко рекламировать, т.к. в "шаловливых" руках она может привести к фатальным последствиям?

1. Нажатием кнопки Х в любом списке можно запустить поиск с текущего места по условию, определяемому в виде набора условий на языке программирования xHarbour. В примере ищем отправленные, но полностью не проведенные акты списания с количеством больше 2 единиц:








2. Нажатием кнопки Y в любом списке можно включить/выключить пометки в группу по условию, определяемому в виде набора условий на языке программирования xHarbour. Ищем документы по банку, где дата документа не совпадает с датой оплаты:









Получилось, что "захватились" фиктивные документы. Усложним условие, отбросив таковые:





... другие технологии - вызов кода на выполнение опишу когда-нибудь после
07.02.2019 19:54
FinSoft
 
Привет, Андрей.

Эта задачка фильтрации записей в списке. Когда-то изучал эту тему и пришел к выводу, что для реальных пользователей работать с формулами не очень удобно. Поэтому сделал облегченный вариант. Щелкаем правой кнопкой мышки по заголовку колонки и вводим условию отбора. Если туда выводится дата, то вводим период, если число, то диапазон значений, если строка то набор фрагментов через пробел (возможно использование "-" для исключения фрагмента). Потом полученный список можно распечатать или экспортировать в xls в том виде как есть, с учетом установленной ширины колонок, скрытых колонок и т.п. Щелчек мышки при нажатом shift по заголовку числовой колонки делает подсчет итого, по заголовку колонки со ссылкой на какой-нибудь справочник открывает форму для просмотра содержимого справочника. Фильтры можно сохранять в списке избранного и затем быстро выбирать.
Конечно, при таком подходе не получится реализовать некоторые сложные условия отбора. Но практика показывает, что они составляют небольшой процент среди используемых вариантов.

Ну а под нужды конкретных пользователей есть подгружаемые библиотеки. Компилим отчеты в dll, затем в списке дополнительных отчетов указываем вызвать из такой-то dll такой-то отчет или обработку. В ряде ситуаций очень удобно вызывать программу с ключиком, указав автоматическое выполнение какой-нибудь функции из какой-нибудь dll.
07.02.2019 20:38
AndreyZh
 
Цитата:
FinSoft Эта задачка фильтрации записей в списке. Когда-то изучал эту тему и пришел к выводу, что для реальных пользователей работать с формулами не очень удобно. Поэтому сделал облегченный вариант. Щелкаем правой кнопкой мышки по заголовку колонки и вводим условию отбора. Если туда выводится дата, то вводим период, если число, то диапазон значений, если строка то набор фрагментов через пробел (возможно использование "-" для исключения фрагмента). Потом полученный список можно распечатать или экспортировать в xls в том виде как есть, с учетом установленной ширины колонок, скрытых колонок и т.п. Щелчек мышки при нажатом shift по заголовку числовой колонки делает подсчет итого, по заголовку колонки со ссылкой на какой-нибудь справочник открывает форму для просмотра содержимого справочника. Фильтры можно сохранять в списке избранного и затем быстро выбирать.
Конечно, при таком подходе не получится реализовать некоторые сложные условия отбора. Но практика показывает, что они составляют небольшой процент среди используемых вариантов.
Я и надеюсь, что обычные пользователи туда не полезут

Цитата:
FinSoft Ну а под нужды конкретных пользователей есть подгружаемые библиотеки. Компилим отчеты в dll, затем в списке дополнительных отчетов указываем вызвать из такой-то dll такой-то отчет или обработку. В ряде ситуаций очень удобно вызывать программу с ключиком, указав автоматическое выполнение какой-нибудь функции из какой-нибудь dll.
В этом и фишка исходной задачи: сделать единожды хардкодную простую программу, а при добавлении нюансов или видов контрагентов просто подсовывать программе текстовый файл с "исходным" кодом, реализующим нюансы, который на лету будет исполнять программа.

В "продолжении" приведу пример использования - просто сегодня было лень
10.02.2019 09:46
AndreyZh
 
3. Нажатием кнопки Z в любом списке можно запустить произвольный набор операторов и функций на исполнение.

Приведу РЕАЛЬНЫЕ примеры для "УСЕга", где было полезным использование данной технологии. В то же время заносить данные операции в штатные средства программы - это лишь усложнять её использование, а работы в принципе "разовые":

а. Когда-то меня попросили список магазинов X5 с адресами, что легко получить средствами ЕГАИС. В результате в таблице клиентов появилось 12 000 мусорных записей. Штатное удаление по одной - тоскливо. Делаем через описываемый сервис:





В результате можно увидеть, что записи удалены, а таблица резко уменьшилась:





б. В "УС Land" есть штатная операций - инвентировать пометки в группу, т.е. снять с помеченных, а пометить не выбранные. Например нужен построить отчет по покупателям, исключая несколько других. "УСЕга" этого не имеет:





В результате, если делать по всем записям:





в. Когда-то из-за сбоя ЕГАИС акт списания был отправлен, но он "потерялся" в ЕГАИС. Было выяснение с техподдержкой и они посоветовали переотправить акт заново, но он был с акцизными марками... и программа запрещает удаление отправленного или проведенного в ЕГАИС документа... По удаленке, при помощи: https://olegon.ru/showthread.php?t=16617&page=3 сменил статус отправки акта, но при помощи этого механизма можно сделать так... По второй строке уже сделал:


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