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:
- 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 systémem 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 systémem určené pouze pro
InternetExplorer.
Základní princip Web obrazů:
-
Pmg objekty se překládají do dynamických HTML stránek (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 obraz je 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 - 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 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:
-
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::
-
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.
-
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) pouze:
- 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) lze otevřít 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 obraz je 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:
Změna úvodního obrazu po přihlášení nového uživatele