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

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

24.10.2020 7:03


14.08.2019 16:18
AndreyZh
 
Увы, но объем и разнообразие работ сейчас таково, что любая инфа вылетает из головы, если не запишу... Сейчас увидел и обалдел - оставлю здесь, как замечание на некое будущее

Видимо все знают, что сейчас в десятую винду входит, как подсистема Linux (?). И можно , к примеру , установить APACHE сервер. В дополнении к этому вот несколько выдержек с форума FW в "вольном" переводе :)

кто-нибудь может объяснить мне, что такое mod_harbour?

- Вы когда-нибудь хотели использовать Harbour для создания приложений для Интернета? Это именно mod_harbour . Это модуль который позволяет запускать PRG напрямую в Интернете, без необходимости создавать EXE-файлы и т.д.
Вы просто устанавливаете mod_harbour на сервер Apache (работающий локально на вашем компьютере или на удаленном ПК) и вы начинаете запускать свои PRG в Интернете !!!

Mod_harbour является полностью бесплатным и открытым исходным кодом.

-->Нам нужен код PHP, чтобы сделать работу правильно?
Фактически, вы используете prg напрямую, но это будет то же самое, что и файлы в .php, как раньше?

-PHP не нужен вообще. Мы используем только PRG-код Harbour !!! Вот в чем прелесть.С mod_harbour вам не нужно создавать EXE. PRG запускаются непосредственно с веб-сервера. Это превращает Harbour в язык веб-разработки на том же уровне, что и php, python, asp и т. Д. Он не использует php, но генерирует HTML-код (необходимый для веб-сайтов).

-> Может ли конечный пользователь увидеть prg? нет

> а по поводу баз данных?

пользователь не может их видеть или загружать, если используется правильный файл .htaccess и помещен туда, где находятся файлы DBF. В качестве альтернативы вы можете использовать MySQL или MariaDB и т. д.

--------------

А при чем тут Linux и Windows 10? Apache можно на любой Windows поставить напрямую, хоть на XP.

-------------

...
Поддержка DBF
Пусть ваши DBF работают в сети в рекордно короткие сроки . Просто скопируйте их в / var / www / test на сервере Apache, установите правильные разрешения для тестовой папки, и вы готовы к работе. Пожалуйста, прочитайте подробные инструкции здесь . Пожалуйста, просмотрите примеры / dbedit.prg и dbrowse.prg и используйте их в качестве шаблонов .

Поддержка MySQL
Если вы предпочитаете использовать MySQL, тогда в моде Harbour есть все, что вам нужно . Пожалуйста, просмотрите samples / mysql.prg для полного примера, который вы можете использовать в качестве шаблона.
...
14.08.2019 16:22
OlegON
 
Если так уж хочется апач с линуксом (а он действительно работает и под виндой, этот форум раньше был на апаче и на 2003 винде), то лучше его поставить в нормальную виртуалку, пусть даже и на винде.
14.08.2019 16:48
AndreyZh
 
Сейчас я хочу домой но делаются сохранения важной инфы конторы
Цитата:
OlegON Если так уж хочется апач с линуксом (а он действительно работает и под виндой, этот форум раньше был на апаче и на 2003 винде), то лучше его поставить в нормальную виртуалку, пусть даже и на винде.
Нужно вникать... по тексту - это очередная реинкарнация языка Harbour, на чем создаются программы "УС Лэнд", которые можно компилировать под любую ОС, а если правильно понял, то в новой его сущности mod_harbour взяв уже созданный исходник программы получим готовое Web приложение, т.е. понятие "под операционную систему" вообще теряет смысл?
14.08.2019 17:00
OlegON
 
Цитата:
AndreyZh если правильно понял, то в новой его сущности mod_harbour взяв исходник программы получим готовое Web приложение
мягко говоря, это совсем не так... полагаю, что этот mod, как и большинство других, просто позволяет получить в программу параметры адресной строки, разные переменные окружения, вроде IP-адреса, а в итоге выплюнет пользователю в браузер вывод программы, который подразумевается HTML-кодом. Любой проект, который требует ввода и клавиатурных операций, потребует почти полного переписывания кода в этой части и в части отрисовки интерфейса.
05.10.2019 18:59
AndreyZh
 
Так получается, что моей "любимой развлекаловкой" последних месяцев является ЭДО, а прочие "игрушки", типа "УС Лэнд:ЕГАИС" и разработки "бизнес схем" отошли в тень... обещали щедро оплатить, но мало ли "что на ком не обещали"?

Сегодня разбирался с именами УПД: ON_NSCHFDOPPR_ИДПолучателя_ИДОтправителя_YYYYMMDD_GUID.xml. Завис на GUID - Globally Unique Identifier. Как его формировать? После долгих поисков в Internet и вообще попыток понять "ху из ит" наткнулся:

1. На сложные программы C++, которые можно интегрировать в мой код;
2. Не менее сложные программы на PHP & Perl - можно взять алгоритм;
3. Многомудрые статьи на "Инфостарт" - программы на "1C":
4. На цитату: "GUID это 128-битный код, который гарантирует уникальность. GUID использует Windows для хранения ключей регистра и всех своих идентификаторов. Использовать GUID возможно при наличии на компьютере WSH 5.6 (В Windows XP имеется точно!) Если его нет, то его можно загрузить с сайта Microsoft по следующей ссылке: msdn.microsoft.com"

... а дальше проблемка перешла в разряд примитивных. Приведу проверенный на ФЛК исходник:
Код:
    
* --------------------------------------------------------------------------------------------------
*   Генерация уникального GUID через класс Windows от XP и выше. Посмотрено и проверено на FoxClub
*   Делаю через отдельную функцию для освобождение переменных класса и локальных переменных
FUNC cgCreaGUID()
    LOCA oGUID := CreateObject("scriptlet.typelib")
    IF oGUID <> NIL
        RETU Lower(Subs( oGUID:GUID, 2, 36 ))
    ENDI
    ErrMess("Не доступен класс Windows: scriptlet.typelib. Смените операционную систему!",cError)
    RETU ""
06.10.2019 10:44
FinSoft
 
Привет, Андрей.

В принципе, для получения guid можно использовать win api, без объектных надстроек. На кларионе это выглядит так.

Код:
  MODULE('GUID')
     CoCreateGUID (*GLO_Guid Guid),LONG,RAW,PASCAL,NAME('CoCreateGuid')
    StringFromGUID2 (*GLO_Guid Guid,*Cstring Lpsz, LONG Cbmax),LONG,RAW,PASCAL,NAME('StringFromGUID2')
  END

GLO_GUID group,type
Data1 ulong
Data2 ulong
Data3 ushort
Data4 string(8)
  end

Код:
FsGetGuid            FUNCTION (lop:NoHypens)      ! Объявление процедуры
FilesOpened          LONG
loc:GUID1      CSTRING(101)
loc:GUID2      STRING (100)
loc:ReturnCode LONG
loc:GUID       like(GLO_GUID)
loc:maxlen     long
loc:i          long
loc:j          long
loc:NoHypens   byte
  CODE                                            ! Начало исполняемого кода
        clear(loc:GUID )
        clear(loc:GUID1)
        clear(loc:GUID2)
  
        if omitted(1)
           loc:NoHypens=0
        else
           loc:NoHypens=lop:NoHypens
        .
  
        loc:MaxLen = 36
  
        loc:ReturnCode = CoCreateGUID (loc:GUID)
        loc:ReturnCode = StringFromGUID2(loc:GUID,loc:GUID1,size(loc:GUID1))
        loc:GUID1 = upper(loc:GUID1)
  
        loc:j = 0
        loop loc:i = 2 to size(loc:GUID1)
           if loc:GUID1[loc:i] = '}'
              break
           end
  
           if loc:GUID1[loc:i] = '<0>'
              cycle
           end
  
           if loc:NoHypens
               if loc:GUID1[loc:i] = '-'
                  cycle
               end
           end
  
           loc:j += 1
           if loc:j > size(loc:GUID2) or loc:j > loc:MaxLen
              break
           end
  
           loc:GUID2[loc:j] = loc:GUID1[loc:i]
        END
  
        loc:GUID2[loc:j+1] = ' '
        return(loc:GUID2)
06.10.2019 15:53
AndreyZh
 
Цитата:
FinSoft В принципе, для получения guid можно использовать win api, без объектных надстроек. На кларионе это выглядит так.
... и я об этом сказал: нашел алгоритмы - можно было их переписать на xHarbour, но можно решить и решил задачу примитивным запросом к встроенным классам операционной системы
06.10.2019 17:01
FinSoft
 
Это не совсем так. Операционная система не имеет встроенных классов. Это дополнительный софт, который может потребоваться доустанавливать у пользователей. Если не парит, то и слава богу.
06.10.2019 21:30
OlegON
 
Поддержу, если есть возможность, лучше использовать WinAPI. Будет в десятки раз быстрее работать, чем создание объекта, более того, создание объектов очень сильно завязано на конкретное поколение операционок и политики безопасности на компе. Есть вариант, что при блокировке скриптового языка на компе, что достаточно часто бывает в корпоративной среде, создание этого scriptlet начнет предлагать сменить операционку, сбивая с толку пользователя. Ну и приколы антивирусов умножатся...
02.03.2020 15:26
AndreyZh
 
После обеда, с затуманенными мозгами просто тупо начал искать решения большого спектра проблем, связанных с блокированием работы IE с УТМ, полностью озвученных в теме: https://olegon.ru/showthread.php?t=33635 … и "обезьяна нашла гранаты", а точнее новые/старые механизмы инструмента разработки решающие их:

1. Во всех режимах вызова методов IE, причем косяно работающих. Пример кода:
Код:
   LOCA oIE
   PRIV cZ := Alltrim( cRes )
    TRY		//	Декларирование структуры с обработкой ошибок выполнения
		oIE	:= CreateObject("InternetExplorer.Application" )
    CATCH
        ErrMess( "Не могу открыть IE! Не работает интернет, используется не Windows и etc. [" + Ole2TxtError()+ "]",cError )
        RETU
    END

	//	Активирую Web страницу по настройкам программы. По умолчанию значение .F.
	oIE:Navigate( cZ )
    IF !lgWin10 THEN pNo10(oIE)
Просто заменяю на другой класс API... и во всех режимах будет вызываться "броузер по умолчанию", например:
Код:
PROC pHelpResurs(cRes)
    LOCA loShell, cZ:=Alltrim(cRes)
    loShell := CreateObject("Shell.Application")
    loShell:Open(cZ)
2. Заморочка о которой там же указывал - при запуске внешнего приложения сама программа "замораживалась" до его полного завершения... что "не давало" простого способа вызова стороннего броузера, но оказывается инструмент содержит функцию вызывающую внешнею программу, как изолированный процесс Windows… и более того использующий свободное ядро процессора, что резко ускоряет работу программ, т.е. вместо:

PRIV cExe:="hle rfu2"
RUN &cExe
… которое "морозит" работу программы

Можно использовать:
LOCA cExe:="hle rfu2"
HB_OpenProcess( cExe )
… запускающее независимый процесс


P.S. Теперь осталось вспомнить ещё "места" программ, где данные находки можно с пользой для Вас использовать

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