Promotic

Web obrazy

Objekt PmaPanel umí nabízet svůj obraz ve Web prohlížeči (Chrome, Firefox, Edge, InternetExplorer ...) v podobě dynamických HTML stránek. Tyto dynamické stránky se automaticky vytvářejí ve vývojovém prostředí a jsou uchovány v souboru Aplikace.pra.
Aby objekt PmaPanel nabízel svůj obraz do Web serveru je nutno:
- zatrhnout konfigurátor "Povolit jako Web komponentu" v kartě "Web server"
- a správně vyplnit všechny další konfigurátory v této kartě.

Z hlediska licence je klient požadující data z této Web komponenty typu PmWebClient.

Od verze Pm9.0.0 jsou Web obrazy PROMOTIC určené pouze pro Web prohlížeče podporující standardní technologii HTML5. To znamená pro Chrome, Firefox, Edge, Opera, Safari atd. InternetExplorer je podporován pouze od verze 11.
Ve verzi Pm8.2.0 bylo generování HTML stránek převedeno na standardní technologie HTML5 a lze je již prohlížet i v jiných prohlížečích (Chrome, Firefox, Edge, InternetExplorer ...) včetně jejich mobilních verzí.
Až do verze PROMOTIC Pm8.2 byly generované HTML stránky určené pouze pro InternetExplorer.

Základní princip Web obrazů:
- Pmg objekty se překládají do dynamické HTML podoby (tzv. technologie Ajax).
- Pokud se klient podívá na daný obraz, pak se nejprve ze serveru (tzn. z aplikace PROMOTIC) stáhne přeložená dynamická HTML stránka obrazu. Následující aktualizace obrazu (viz konfigurátor "Perioda obnovování dat Web obrazu [s]") se dějí automaticky na základě periodicky čtených XML dat obrazu, které jsou však již daleko menší než HTML stránka. Například pokud je obraz napojen datovou vazbou na 10 proměnných, pak se přenáší periodicky pouze aktuální hodnoty těchto 10 proměnných. Zatížení serveru je tedy minimální.
- Skripty v událostech Pmg objektů jsou spouštěny na straně klienta (tzn. ve Web prohlížeči). Z toho pak plynou určitá omezení popsaná níže.
Hlavní omezení je, že nelze ve skriptu přistupovat přímo na jiné objekty ve stromu Pma objektů, například na hodnoty v objektu PmaData (toto omezení je pro skripty - né například v datové vazbě "PP - Datová vazba na vlastnost Pma objektu" - tam se odkazovat na jiné objekty lze).
Toto omezení lze řešit tak, že se na klientovi (tzn. v události Pmg objektu) například volá metoda obrazu pMe.PmPanel.Methods.XXX(a,b,..). Toto volání metody "XXX" způsobí, že se z klienta vyšle na server XML příkaz, a metoda se zavolá na serveru. V této metodě obrazu pak již může být skript, který přistupuje na jiné objekty ve stromu Pma objektů. Další možnosti viz dále.


Omezení:

Zde je seznam omezení kladených na obrazy, které mají být nabízené do Web serveru v podobě dynamické HTML stránky.

- Omezení pro datové vazby:
NELZE využívat datové vazby S - Datová vazba na obsah textového souboru a VB - Datová vazba na skriptový výraz


- Omezení pro psaní algoritmů (skripty):
- Nelze se přímo odkazovat na jiné Pma objekty ve stromu Pma objektů (např. používat pMe.Pm("/data/xy")). Pokud je potřeba ve Web obrazu ovlivnit jiný objekt v aplikaci, pak to lze provést:
- voláním metod pMe.PmPanel.Methods.XXX(a,b,..).
- voláním globálních metod aplikace použitím Pm.Methods.XXX(a,b,..).
- Lze používat objekt pMe.PmPanel, pomocí kterého lze ovlivňovat celý obraz. V získaném objektu PmaPanel jsou funkční pouze následující metody: Methods, OpenView, ViewerType, Close.
- Skripty lze použít skoro ve všech událostech Pmg objektů. Pro Web zatím nejsou funkční události: PmgWEdit.onDataEditing a PmgWEdit.onDataEditCancel.
- Zatím pro Web nejsou funkční vlastnosti a metody Pmg objektů: Blink, Focus, MouseOn, Refresh, ScreenX, ScreenY.
- Globální objekt Pm: Mnoho metod je na Webu funkčních ale mnoho metod funkčních není. U každé metody tohoto objektu je uvedeno zda je čí není funkční na Webu.


- Omezení pro Pmg objekty::
- PmgRasterImage: Konfigurátor "Povolit barvu průhlednosti" se nebere v úvahu.
- PmgWCombo: Konfigurátor "Setřídění" se nebere v úvahu.
Konfigurátor "Typ" s volbou "Výběr a editace" zatím není funkční pro Web.
- PmgVideo: Hodnota "-1 = Opakovaně dozadu" v konfigurátoru "Směr přehrávání" se nebere v úvahu.
Metody Seek a Sound nejsou funkční.
- PmgActiveX: Tento objekt není funkční na Webu, protože všechny moderní Web prohlížeče z důvodu bezpečnosti nepodporují technologii ActiveX.
- PmgMeterBox: Tento objekt je zastaralý a není funkční na Webu.


- Omezení pro volání metody projektanta objektu PmaPanel:
Viz Metody projektanta v objektu PmaPanel.
Voláné metody mohou mít parametry a výstupní hodnotu (pResult) jen:
- jednoduchých datových typů (např. Integer, String, atd.)
- 1-rozměrné pole (Array) definované např. Dim arr(20)
- 2-rozměrné pole (Array) definované např. Dim arr(10,20)
- v položkách pole nesmí být obsažena další pole (Array)

Poznámky a návody:

Jiný algoritmus pro lokální obraz a pro Web obraz:
Obraz (vytvořený v objektu PmaPanel) může být otevřen přímo v runtime aplikace (lokální obraz) nebo ve Web prohlížeči (Web obraz). Pokud je v takovém obrazu potřeba například po stisknutí tlačítka vyvolat algoritmus, který však má provést v lokálním obrazu něco jiného než ve Web obrazu, pak je k tomu vhodné využít vlastnost PmgRoot.ClientType. Hodnota této vlastnosti určuje, zda je obraz otevřen v aplikaci nebo ve Web prohlížeči. Příklady viz popis vlastnosti ClientType.

Reentrantnost obrazů:
Při vývoji obrazu určeného pro Web je nutno si uvědomit, že na tento obraz se současně může dívat více klientů. Nelze proto používat například konstrukce, kdy jeden obraz (jeden objekt PmaPanel) slouží pro prohlížení různých zařízení podle aktuálně nastavené proměnné v aplikaci. Klienti by si totiž tuto globální proměnnou navzájem přepisovali a v důsledku by pak viděli nesprávné údaje. Pokud je potřeba, aby jeden obraz nabízel různá data, pak je nejlépe:
- použít parametry objektu PmgRoot (viz: Parametry Pmg objektu) a/nebo

Historie:
Pm9.00.00: Od verze Pm9.0.0 jsou Web obrazy PROMOTIC určené pouze pro Web prohlížeče podporující standardní technologii HTML5. To znamená pro Chrome, Firefox, Edge, Opera, Safari atd. InternetExplorer je podporován pouze od verze 11.
Pm8.03.19: Různé opravy chyb v zobrazování Web stránek obrazů, alarmů, trendů, formulářů (objekt PmForm) atd.
Pm8.03.13: Zjednodušeno přihlašování uživatelů na Webu. Při zadání špatného jména nebo hesla se otevře chybové okno s tlačítkem, pomocí kterého lze vyvolat nové přihlášení.
Pm8.03.12:
- Opravená chyba: Objekt PmgWCombo byl zobrazen se špatnou výškou.
- Zlepšeno okno přihlašování uživatelů (otevírané metodou Pm.WndLogon).
Pm8.03.11: Zprovozněna metoda Pm.WndLogon i pro prohlížeč Chrome.
Pm8.03.06:
Nový konfigurátor "PmaPanel > Web server > Způsob zobrazení chyby obnovování": Umožňuje potlačit zobrazení chybového hlášení v obrazu při výpadku spojení se serverem.
Předěláno lokální menu (onMenuFill a onMenuSelect) tak, že funguje ve všech Web prohlížečích.
Pm8.03.05: Opravená chyba: Nevyhodnocovala se správně velikost a pozice obrazu otevřeného v novém okně (tzn. pokud byl "target:_blank;").
Pm8.03.04: Opravená chyba: Opravy chyb které se projevili pouze při používání starého prohlížeče InternetExplorer 8.
Pm8.03.02:
- Zprovozněny metody Pm.CreateDate a Pm.FormatDate.
- Zprovozněna editace v Touchpad prohlížečích nepodporujících myš - například Android. Tyto prohlížeče nepodporují dvojklik levým tlačítkem myši, který způsobuje otevření editace v objektech PmgString a PmgWTable. Nyní se do editace Pmg objektu lze dostat také výběrem z lokálního menu Pmg objektu - tzn. například v Android delším podržením prstu nad Pmg objektem.
- Opraven editační režim v objektu PmgWEdit - nefungoval v prohlížečích Chrome a Android.
Pm8.03.01:
- Otevření obrazu někdy selhalo pokud v parametrech obrazu byla diakritika (tzn. národnostně závislé znaky).
- Objekt PmgTrendViewer v JavaScript obrazech: Optimalizace dotazů při velkém nebo rychlém dotazování.
- Zlepšeno vykreslování Pmg objektů i pro zastaralý Web prohlížeč InternetExplorer 8.
- Oprava dána i do verze Pm8.2.18.
Pm8.02.17: V objektech PmgString a PmgWEdit zlepšena práce s fokusem při ukončení editace.
Pm8.02.15:
- Pokud byla v obrazu použita nepodporovaná datová vazba VB - Datová vazba na skriptový výraz nebo S - Datová vazba na obsah textového souboru, pak se Web obraz vůbec nenačetl. Nyní se načte ale nebudou funkční tyto vazby.
- onMousePress událost: (ve Firefox nebo Chrome) fungovala i když bylo zakázáno ovládání.
Pm8.02.13:
- Úprava automaticky generovaných HTML obrazů pro InternetExporer 11 (v tomto prohlížeči opět přestal Microsoft podporovat některé technologie).
- PmgRasterImage objekt: Pokud konfigurátor "Velikost" byl nastaven na hodnotu "Přes celý nadřízený", pak na Webu nefungovalo zobrazovaní obrázku ve formátu PNG.
- PmgTrendViewer objekt: emulovaný v HTML (tzn. v JavaScript obrazech):
- Zprovoznění zobrazování času u kurzoru.
- Oprava v metodě AddTrend
Pm8.02.12:
- Pm.WndLogon metoda: Zprovozněna i pro Web prohlížeče jiné než InternetExplorer.
- PmgTrendViewer objekt: emulovaný v HTML (tzn. v JavaScript obrazech):
- Zprovozněny vlastnosti TimeMin a TimeMax
- Zprovozněno tabulkové prohlížení trendů
Pm8.02.10: Pro InternetExplorer 8 (a nižší): Objekty PmgTrendViewer a PmgWTable v JavaScript obrazech nejsou emulovány (protože tento starý prohlížeč nepodporuje některé důležité standardy) ale prohlížeč se přepne do režimu plného zobrazení ActiveX objektu (tyto ActiveX objekty musí být tedy na klientovi instalovány) - podobně jako pro VBScript obrazy.
Pm8.02.09:
- Zdokonalena emulace objektu PmgTrendViewer a PmgWTable pro JavaScript obrazy.
- U objektů PmgBarBox a PmgSliderBox byly přehozeny přístrojové a technologické meze.
- Metody Pm.GetBit a Pm.SetBit zprovozněny pro Web.
Pm8.02.07:
- Zdokonalena emulace objektu PmgTrendViewer pro JavaScript obrazy.
- Zprovozněna metoda PmgFrame.OpenView.
Pm8.02.05:
- Zprovozněn konfigurátor "Vzor" pro Pmg objekty PmgRectangle a PmgEllipse.
- Zprovozněn konfigurátor "Zaoblení rohu X" pro objekt PmgRectangle.
- Zprovozněna metoda Pm.StringScan.
- Zdokonalena emulace objektu PmgTrendViewer pro JavaScript obrazy.
Pm8.02.04: Optimalizace zobrazování trendů objektem PmgTrendViewer na Webu při pomalém HTTP připojení.
Pm8.02.03: Zdokonalena emulace objektů PmgTrendViewer a PmgWTable pro JavaScript obrazy.
Pm8.02.01: Zdokonalena emulace ActiveX objektů PmgTrendViewer a PmgWTable pro JavaScript obrazy.
Pm8.02.00: Automatické generování HTML stránek obrazu bylo zdokonaleno tak, že stránky fungují i ve Web prohlížečích Firefox, Chrome, Opera .... Pro plnou funkčnost je však obraz nutno upravit:
- události Pmg objektu musí být psány v jazyce JavaScript. Tento jazyk byl nově zaveden do systému PROMOTIC a zatím slouží právě pouze pro obrazy, které mají fungovat na Webu.
Jazyk JavaScript je modernější, obecnější a pro potřeby systému PROMOTIC dokonce jednodušší než jazyk VBScript. Viz Porovnání jazyků VBScript a JavaScript.
- Objekty PmgTrendViewer a PmgWTable jsou HTML emulovány (tzn. v prohlížeči neběží ActiveX objekt ale je vše funkční jako standardní HTML). V této verzi nejsou tyto objekty ještě zcela plně funkční - jsou zprovozněny jen základní funkce.
Jiné ActiveX objekty než tyto dva nejsou funkční.
- Automatické generování html při překladu obrazu se zrychlilo a generované html stránky jsou menší.
Pm8.01.12: Velké úpravy pro Web prohlížeč InternetExplorer 10. Bohužel tato verze prohlížeče přestala podporovat některé technologie, které využívaly Web obrazy do verze PROMOTIC 8.2. (Verze PROMOTIC 8.2 již podporuje standardní HTML technologie a tím lze prohlížet Web obrazy i v Chrome, Firefox, Edge, InternetExplorer ...)
Pm8.01.08: Bezpečnější výpočet datových vazeb.
Pm8.01.01: Metody Pm.ColorOper a Pm.ColorRgb zprovozněny i pro Web obrazy.
Pm8.01.00: C++ formátování (viz konfigurátor "Typ formátování hodnoty") je nyní implementováno přímo do obrazu a proto již není potřeba pomocný ActiveX objekt PmAxTool1.
Pm8.00.11:
- Někdy se špatně vyhodnocovaly reálné hodnoty s desetinnou tečkou, pokud prostředí (kde běžela aplikace) mělo nastavenu desetinnou tečku jako čárku.
- Někdy špatně vyhodnotila datová vazba "LN - Datová vazba na výpočet podle lineární funkce"
Pm8.00.07: Opravená chyba: Nefungovaly některé konfigurátory nastavené pomocí Makro výraz $.par.
Pm8.00.06: Opravená chyba:
- Zprovozněny další metody/vlastnosti/události Pmg objektů a nyni je u všech popsáno, zda je nebo není funkční ve Web obrazech.
- Metody OpenView a OpenViewModal: zprovozněno otevírání oken na zadané pozici a zadané velikosti (tzn. v parametru sOptions se bere v úvahu nastavení pos:xx; a size:xx;).
Pm8.00.02:
- Pro Web zprovozněno volání metod: Pm.Logoff, Pm.WndLogoff a Pm.WndLogon.
- Změněn způsob zobrazení objektu PmgVideo v HTML stránce. Starý způsob nebyl funkční v InternetExplorer8.
© MICROSYS, spol. s r.o.