Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > КИС Lack & УС Land

Для компьютерщиков! Инструмент разработки системы "УС Land" : КИС Lack & УС Land

16.04.2024 16:12


02.01.2018 15:57
AndreyZh
 
Цитата:
OlegON Я по прежнему больше люблю консольки... Да и грамотный народ, усаживаясь за программу, как правило, изучает ее хоткеи. А без мыши виндовые окошки теряют бОльшую часть своей привлекательности.
Поддерживая много больших проектов автоматизации просто банально не смог бы этого, занимаясь "оформительскими плюшками", т.е. всё "свободное" время уходит на решение бизнес задач, а их визуальное отражение, к сожалению отходит на второй план

В принципе, если бы не "лень"-матушка, то и GUI системы разработки опирается на win api, т.е. также быстро будет работать на "мусоре", да и под Linux без изменения кода "элементарно" пересобрать проект... но не успеваю - нужно ещё и денежку, в том числе на добрые дела успевать зарабатывать...
02.01.2018 18:55
FinSoft
 
Привет. Виндовый интерфейс не только и не столько плюшки в оформлении. Прежде всего, это возможность работы в многооконном контексте. В функционально сложных системах это позволяет оптимизировать интерфейс. Другой аспект, когда работаешь с актуальными версиями системы разработки, оказываешься в составе комьюнити с другими разработчиками, что тоже очень важно.

Андрей, в твоей ситуации перейти с консольного интерфейса очень непросто. А, возможно, и нет смысла.На консоли сейчас мало пишут, это имеет и обратную сторону медали. Ты делаешь что-то непохожее на других и этим обращаешь на себя внимание. Плюс простота разработки и компактность программ. Есть немало людей, которые готовы работать с консолью. Так что нет смысла особо комплексовать по этому поводу.

К слову, на днях делал для себя библиотеку вывода в xlsx файлы. На перспективу. Это переименованный zip архив, который содержит набор каталогов и xml файлов. То есть ты можешь из своих dos программ спокойно формировать файлы для электронных таблиц, с которыми работают современные версии excel и calc...
02.01.2018 20:17
AndreyZh
 
Добрый вечер Вячеслав! С новым годом и новыми успехами в разработке и внедрении "Купца"!

Позволь всё же дать комментарий к твоему сообщению? Возможно, да и не нужно тебе, однако видимо эту тему не читал, а посему имеешь некоторое недопонимание системы разработки (языку программирования) [x]Harbour, который является на сей момент самым идеологически продвинутым, современным, интенсивно развиваемым и универсальным инструментом.

Основная его парадигма: имеется исходный код на расширенном диалекте языка xBase, в который можно включать исходные фрагменты на Assembler и ANSI C или посредством препроцессора и инструмента "блоков кода" включать команды в синтаксисе любого ЯП, например "1С" или "Clarion" , который посредством компилятора полностью преобразуется в исходный код на языках C + Assembler.

Далее в задании сборки программы может указать каким компилятором C (C++) его нужно собрать. От сюда следует, что могу собрать под Dos, Mac OS, Linux, Android, etc. В проект могу подключить любую библиотеку на С, т.е. могу собирать программу с графическим интерфейсом любой современной операционной системы! Просто "лень"


Цитата:
FinSoft Привет. Виндовый интерфейс не только и не столько плюшки в оформлении. Прежде всего, это возможность работы в многооконном контексте.
Не знаю, что эти "слова" означают Однако в реальной "жизни" запускается требуемое число копий приложений, где в каждой копии открыта своя задача и эти задачи, как копипастом, так и встроенными средствами обмениваются данными. Пример "УС Лэнд:ЕГАИС" - сегодня:

1. На кассовом узле:
- интерфейс кассира;
- интерфейс списаний;
- инвентаризации в параллельном режиме.

2. На ПК товароведа - сервер УТМ:
- работы с регистром №3;
- постоянный анализ чеков;
- инвентаризации в параллельном режиме.

3. Ноут по WiFi - инвентаризации в параллельном режиме.

... Конечно на этих ПК "крутились" и другие программы ...

Цитата:
FinSoft В функционально сложных системах это позволяет оптимизировать интерфейс. Другой аспект, когда работаешь с актуальными версиями системы разработки, оказываешься в составе комьюнити с другими разработчиками, что тоже очень важно.
Ясень-пень... Имеется большое число разработчиков на [x]Harbour, как русскоязычных, но в основном индусов, поляков и латиносов... Хотя команда разработки - украинцы и америкосы латинского происхождений. Поищи - есть много форумов по данной системе.

Цитата:
FinSoft Андрей, в твоей ситуации перейти с консольного интерфейса очень непросто.
Да - очень сложно! Есть система класса 1С:УПП и куча сопутствующих приложений, есть "УСЕга", есть рабочие обязанности, в том числе, как эникейщика и бухгалтера... За поддержку и развитие этого всё платят "какие-никакие" денежки... и крайне сложно из этого вырваться

Цитата:
FinSoft К слову, на днях делал для себя библиотеку вывода в xlsx файлы. На перспективу. Это переименованный zip архив, который содержит набор каталогов и xml файлов. То есть ты можешь из своих dos программ спокойно формировать файлы для электронных таблиц, с которыми работают современные версии excel и calc...
Увы нет на разработки "плюшек для времени" времени, но при острой необходимости осваиваю что-то из библиотек, краткий список которых приведен выше... и где наверняка есть вывод в XLSX?
02.01.2018 21:54
FinSoft
 
С Новым годом Андрей! Пишу со смартфона, поэтому кратко.
Несколько запущенных экземпляров приложения не имеют общего управления. Например, формируем отчет, щелкаем по строке, открываем в отдельной нити связанный документ. Или передаем фокус, если этот документ уже открыт. Общие кнопки управления для открытых нитей. И тому подобное. Речь об удобстве переключения, управления, работы в целом.
По поводу си кода. В кларионе изначально тоже можно было вставлять блоки кода на си или ассемблере. Вызывается соответствующий компилятор и все собирается в один проект. Но реально этим пользуются единицы. Одно дело декларировать, другое дело использовать в реальных проектах. Я могу в целом понять код на си, но править, если что, сырцы на си, нет.Я думаю на кларионе... По моим наблюдениям, большинство серьезных библиотек на си коммерческие. И почти все, что нужно, можно написать на родном языке, на выходе все равно получается быстрый машинный код.
02.01.2018 22:01
FinSoft
 
Поэтому я придерживаюсь правила использовать в боевой системе только рантайм клариона, win api и сырцы на кларионе. К первому есть доверие, так как работает во многих коммерческих проектах по всему миру, а с сырцами на родном языке можно быстро разобраться, если что. Это придает системе необходимый уровень надежности.
27.06.2018 20:42
AndreyZh
 
Коллеги по системе разработки захотели посмотреть исходники по удаленным режимам работающей когда-то подсистеме "УС Лэнд:ЕГАИС" управления ФР от Атол. Дабы не мудрить со ссылками в файлопомойках позвольте разместить его тут?
Вложения
Тип файла: 7z ON_line_kassa.7z (10.7 Кб, 69 просмотров)
09.01.2019 13:55
AndreyZh
 
Как-то решил "размять мозги" задачкой: можно ли из xHarbour проигрывать музыкальные файлы? Встроенной возможности, наверное в силу мультиплатформенности нет! Начал изучать опыт профессионалов:

1. Можно встроить в код функцию на C и вызывать её, как "родную". Но она обращается к Windows.API, да и из обсуждения понял, что спецы сами не понимают, как она работает, а точнее использование туевой хучи параметров, которые ещё и меняются в разных версиях Windows.

2. Нашел описание класса на языке Harbour. Однако мой xHarbour не совсем совместим, да и ради такой "мелочи" в проекты добавлять несколько тысяч строк чужого кода... К тому же случайно наткнулся, что в "итого" всё равно вызываются встроенные ф-ции на С, работающие с Windows.API

3. Вспомнил о любимом всеми скриптописателями VBScript. Нашел код проигрывающий звуки:
Код:
Set WMP = WScript.CreateObject("MediaPlayer.MediaPlayer","WMP_")
WMP.Open "C:\WINDOWS\Media\Chimes.wav"
WMP.Play
WScript.Sleep 10000
Перевел его в уже используемый для отсылки почты "подход":
Код:
* --------------------------------------------------------------------------------------------------    
*   Проигрывание Wav файлов с использованием VbScript. Звуковой файл лежит в каталоге программы
*   Параметр: cWav - имя файла
PROC pzWavPlay(cWav)
    LOCA cCod:=""
    PRIV cFile:=""
    
    //  Проверка существования файла в каталоге и выход при его отсутствии
    cWav    := Alltrim(cWav)
    IF !File(cWav) THEN RETU
    
    //  Проверка, что это среда Windows, а иначе выход
    IF At("WINDOWS",Upper(OS())) <= 0 THEN RETU
    
    //  Определяю имя файла куда сохраняю сценарий
    cFile   := zTemp(cdTemp,"vbs",32)
    
    //  Собираю текст сценария
    cCod    += [Set WMP = WScript.CreateObject("MediaPlayer.MediaPlayer","WMP_")]+CRLF
    cCod    += [WMP.Open "]+cWav+["]+CRLF
    cCod    += [WMP.Play]+CRLF
    cCod    += [WScript.Sleep 1000]
    
    //  Сохраняю строку в файле с заданным именем в Windows кодировке
    MemoWrit( cFile, HB_OEMTOANSI(cCod) )
    RUN &cFile
    
    //  Удаляю за собой скрипт
    fErase(cFile)
    RETU
Заработало! Но на время проигрыша оставалось висеть консольное окошко, что не красиво...

4. Вспомнил, что и в "УСЕга", да и примере выше обращался напрямую к классам установленных программ, в частности Windows. Переписал и заработало, как надо. Жирным выделен основные и достаточные команды:
Код:
    
* --------------------------------------------------------------------------------------------------    
*   Проигрывание Wav файлов с использованием техники VbScript. Звук.файлы лежат в каталоге программы
*   Параметр:   cWav  - имя файла
*               nWait - пауза в секундах для проигрыша файла
PROC pzWavPlay(cWav,nWait)
    LOCA oW
    DEFAULT nWait TO 1
    
    //  Проверка существования файла в каталоге и выход при его отсутствии
    cWav    := Alltrim(cWav)
    IF !File(cWav) THEN RETU
    
    //  Проверка, что это среда Windows, а иначе выход
    IF At("WINDOWS",Upper(OS())) <= 0 THEN RETU
    
    //	Декларирование структуры с обработкой ошибок выполнения
    TRY		
        oW  := CreateObject( "MediaPlayer.MediaPlayer" )
    CATCH
        RETU
    END

    //  Открываем и проигрываем файл
    oW:Open := cWav
    oW:Play()
    
    //  Пауза нужна, что-бы дать возможность проиграть звуковой файл
    Inkey(nWait)
    RETU
P.S. Для Linux процедура ничего не делает. Данный прием можно использовать из любого ЯП, создающего программы под Windows.
09.01.2019 20:51
OlegON
 
Как ни странно, но WMP не у всех работает/установлен (по крайней мере раньше было так). Однако, как я вспоминаю свое прошлое, в Windows API (а это самое классное, что есть в программировании под Windows) есть проигрывание файла. Т.е. если есть возможность прямого доступа к API, то лучше пользоваться ею.
09.01.2019 21:12
AndreyZh
 
Цитата:
OlegON WMP не у всех работает/установлен
Для этого и добавлен блок TRY - в случае ошибки создания объекта произойдёт выход без попытки проигрывания...
09.01.2019 21:14
OlegON
 
Так работать не будет... А через API будет играть...
Часовой пояс GMT +3, время: 16:12.

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