Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Web Obrazy

Objekt PmPanel umí nabízet svůj obraz internetovým klientům (Firefox, Chrome, Chrome on mobile, Edge, MS InternetExplorer atd.) v podobě dynamických HTML stránek. Tyto dynamické stránky se automaticky vytvářejí ve vývojovém prostředí při překladu obrazu a jsou uchovány v souboru "Aplikace.pra".

Aby objekt PmPanel nabízel svůj obraz do Web serveru je nutné, aby měl v záložce "Web Server" zatržen konfigurátor "Povolit jako WEB komponentu" a správně vyplněny všechny další konfigurátory v této záložce.

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

 
Až do verze PROMOTIC Pm8.2 byly generované HTML stránky určené jen pro MS InternetExplorer (MSIE). Ve verzi Pm8.2.0 bylo generování HTML stránek převedeno na standardní technologie Ajax a HTML5 a lze je již prohlížet i v jiných prohlížečích (Firefox, Chrome, Opera ..) včetně jejich mobilních verzí. S tím však souvisí několik omezení:
- Je podporován MSIE od verze 8, doporučován je však od verze 10 (teprve v této verzi je technologie HTML5 standardně podporována). Viz Omezení pro MS InternetExplorer 8.
- Pokud má být WEB obraz provozován v neMSIE prohlížečích (tzn. Firefox, Chrome ..), musí být v příslušném objektu PmPanel konfigurátor "Nastavení skriptovacího jazyka" nastaven na "javascript". Skripty v událostech grafických prvků se totiž spouštějí na straně klienta (viz dále) a neMSIE prohlížeče nepodporují jazyk VBScript.

V tomto případě se ActiveX prvky TrendsView a PmTable v HTML stránkách přímo nespouštějí (neMSIE prohlížeče nepodporují technologii ActiveX), ale jsou "emulovány" HTML kódem. Není potřeba tedy na straně klienta tyto ActiveX prvky instalovat (viz Instalace webového klienta). Viz ActiveX grafické prvky a WEB obrazy.

 
Základní princip WEB obrazů:
- Grafické prvky se překládají do dynamické HTML podoby (tzv. technologie Ajax).
- Když se klient podívá na daný obraz, tak se nejdřív ze serveru (tzn. z PROMOTIC aplikace) stáhne přeložená dynamická HTML stránka obrazu. Následující aktualizace obrazu (viz konfigurátor "Perioda obnovování HTML stránek [s]") se dějí automaticky na základě periodických vyčítání XML dat obrazu, které jsou však již daleko menší než HTML stránka. Například pokud je obraz napojen datovou vazbou na 10 veličin, přenáší se pak pravidelně pouze aktuální hodnoty těchto 10 veličin. Zatížení serveru je tedy minimální.
- Skripty v událostech grafických prvků jsou spouštěny na straně klienta (tzn. v prohlížeči). Z toho pak plynou určitá omezení popsaná níže. Hlavní omezení je, že nelze skriptem přistupovat přímo na jiné objekty ve stromu aplikace, například na hodnoty v PmData objektu (toto omezení je pro skripty - né například pro datovou vazbu PP - Vazba na vlastnost Promotic objektu - tam se odkazovat na jiné objekty lze).

Toto omezení lze řešit tak, že se na klientovi (tzn. v události prvku) 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 script, který přistupuje na jiné objekty se stromu aplikace. 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 - Vazba na obsah textového souboru a VB - Vazba na skriptový výraz

 
- Omezení pro psaní algoritmů (skripty):
- Nelze se přímo odkazovat na jiné PROMOTIC objekty ve stromu aplikace (např. používat pMe.Pm("/data/xy")). Pokud je potřeba z WEB obrazu ovlivnit jiný objekt v aplikaci, lze to 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 typu PmPanel jsou však funkční pouze následující metody: Methods, OpenView, ViewerType, Close.
- Skripty lze využívat skoro ve všech událostech grafických prvků. Pro WEB zatím nejsou funkční události: PmiWEdit.onDataEditing a PmiWEdit.onDataEditCancel.
- Zatím pro WEB nejsou funkční metody a vlastnosti grafických prvků: Blink, Focus, FullName, 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í funikční pro WEB.
 
- Omezení pro grafické prvky::
- PmiRasterImage: Konfigurátor Povolit barvu průhlednosti se nebere v úvahu.
- PmiText: Konfigurátor Typ stínování textu se nebere v úvahu.
- PmiAx: Je funkční pro PROMOTIC ActiveX objekty TrendsView a PmTable. Pro jiné ActiveX objekty není funkční. Viz ActiveX grafické prvky a WEB obrazy.
- PmiLine: Konfigurátor Vzor se nebere v úvahu.
- PmiWCombo: Konfigurátor Setřídění se nebere v úvahu. Konfigurátor Typ s volbou "Výběr a editace" není pro WEB zatím funkční.
- PmiWAnimate: Konfigurátor -1 = Opakovaně dozadu se neberou v úvahu. Metody Seek a Sound nejsou funkční.
- PmiPanelMeter: Tento zastaralý prvek na WEBu není funkční.
 
- Omezení pro volání uživatelské metody objektu PmPanel:

Viz Uživatelské metody v objektu PmPanel.

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)

 
- Omezení pro MS InternetExplorer 8:

Pro MS InternetExplorer je doporučováno používat verzi 10 nebo vyšší. Bohužel pro WindowsXP tyto vyšší verze nejsou podporovány a poslední možná verze je 8. Tato verze však ještě nepodporuje některé standardy a z toho plynou omezení:

- Nelze přímo číst a zapisovat do vlastností prvků (tzn. PmiItem.vlastnost=hodnota). Místo toho je potřeba použít metody PmiItem.GetProp nebo PmiItem.SetProp.

Poznámky a návody:

Jiný algoritmus pro lokální obraz a WEB obraz:

Obraz vytvořený v objektu PmPanel může být otevřen přímo v runtime aplikaci (lokální obraz) nebo ve WEB prohlížeči (WEB obraz). Pokud je v takovém obraze potřeba například na stisk tlačítka vyvolat algoritmus, který však má provést v lokálním obraze něco jiného než ve WEB obraze, pak je k tomu vhodné využít vlastnost PmiRoot.ClientType. Hodnota této vlastnosti informuje, 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 potřeba si uvědomit, že na tento obraz se v jednom okamžiku může dívat více klientů. Nelze proto používat například konstrukce, kdy jeden obraz (jeden objekt PmPanel) 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 grafického prvku PmiRoot (viz: Parametry grafického prvku) a/nebo

 
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice