Obiekt
PmaPanel potrafi oferować swój obraz w przeglądarce internetowej (
Chrome,
Firefox,
Edge,
InternetExplorer ...) w formie
dynamicznych stron HTML. Te strony dynamiczne
wytwarzają się automatycznie w środowisku deweloperskim i są przechowywane w pliku
Aplikacja.pra.
Żeby obiekt
PmaPanel oferował swój obraz do Web serwera jest konieczne:
- i poprawnie wypełnione wszystkie pozostałe konfiguratory w tej karcie.
Z punktu widzenia licencji jest klient, wymagający dane z tego Web komponentu klientem typu
PmWebClient.
Od wersji
Pm9.0.0 są Web panele PROMOTIC przeznaczone tylko dla przeglądarek wspierających standardową technologię
HTML5. To znaczy dla
Chrome,
Firefox,
Edge,
Opera,
Safari itd.
InternetExplorer jest wspierany tylko od wersji 11.
W wersji
Pm8.2.0 generowanie stron HTML było zmienione na standardowe technologie
HTML5 i można je przeglądać również przy pomocy innych przeglądarek (
Chrome,
Firefox,
Edge,
InternetExplorer ...) włącznie z ich wersjami mobilnymi.
Aż do wersji PROMOTIC
Pm8.2 strony HTML były generowane tylko dla
InternetExplorer.
Podstawowa zasada Web paneli:
- Pmg obiekty są generowane w formie dynamicznych stron HTML (tzw. technologia Ajax).
- Jeżeli klient spojrzy na dany panel, wtedy z serwera (tzn. z aplikacji PROMOTIC) najpierw zostanie przeniesiona dynamiczna HTML strona panela. Następne aktualizacje panela (patrz konfigurator "
Period odświeżania danych Web panela [s]") odbywają się automatycznie na podstawie cyklicznego odczytu danych panela XML, które są jednak o dużo mniejsze niż cała strona HTML. Na przykład jeżeli w panelu znajdują się powiązania danych do 10 zmiennych, wtedy periodycznie zostają transmitowane wyłącznie bieżące dane tych 10 zmiennych. Obciążenie serwera jest więc minimalne.
-
Skrypty w zdarzeniach
Pmg obiektów
są uruchamiane po stronie klienta (tzn. w przeglądarce internetowej). Z tego wynikają pewne ograniczenia opisane niżej.
Podstawowym ograniczeniem jest to, że nie można w skrypcie bezpośrednio odnosić się do innych obiektów w drzewie
Pma obiektów, na przykład do wartości w obiekcie
PmaData (ograniczenie dotyczy tylko wykonywania skryptów - nie dotyczy na przykład w powiązaniu danych "
PP - Powiązanie danych z właściwością Pma obiektu" - tam można bezpośrednio odnosić się do innych obiektów).
To ograniczenie można rozwiązać w ten sposób, że po stronie klienta (tzn. w zdarzeniu
Pmg obiektu) na przykład zostanie wywołana metoda panela
pMe.
PmPanel.
Methods.XXX(a,b,..). Wywołanie takiej metody
"XXX" spowoduje, że z klienta jest przesłane na serwer polecenie XML, i metoda zostanie wywołana na serwerze. W metodzie panela z kolei może już znajdować się skrypt, który odnosi się do innych obiektów w drzewie
Pma obiektów. Pozostałe możliwości patrz dalej.
Ograniczenia:
Tutaj znajduje się lista ograniczeń dotyczących paneli, które mają być oferowane do Web serwera w formie dynamicznej strony HTML.
-
Ograniczenia dla pisania algorytmów (skrypty):
-
Nie można bezpośrednio odnosić się do innych Pma obiektów w drzewie
Pma obiektów (np. stosować
pMe.
Pm("/data/xy")). Jeżeli zachodzi konieczność wpływać w
Web panelu na inny obiekt w aplikacji, wtedy można zastosować:
-
Globalny obiekt Pm: Wiele metod działa w Webie, ale sporo nie jest wspieranych. Każda metoda tego obiektu zawiera informację, czy działa lub nie w Webie.
-
Ograniczenia dla Pmg obiektów::
-
PmgWCombo:
Konfigurator "
Sortuj" nie jest brany pod uwagę.
Konfigurator "
Typ" z opcją
"Wybór i edycja" w chwli obecnej nie działa dla Webu.
-
PmgActiveX:
Obiekt ten nie działa w Webie, ponieważ wszystkie nowoczesne przeglądarki internetowe z powodów bezpieczeństwa nie wspierają technologii
ActiveX.
-
PmgMeterBox:
Obiekt ten jest przestarzały oraz nie działa w Webie.
-
Ograniczenia dla wołanie metody projektanta obiektu PmaPanel:
Patrz
Metody projektanta w obiekcie PmaPanel.
Wywoływane metody mogą mieć parametry i wartość wyjścia (
pResult) tylko:
- prostych typów danych (np. Integer, String, itd.)
- tablica 1-wymiarowa (
Array) zdefiniowane np.
Dim arr(20)
- tablica 2-wymiarowa (
Array) zdefiniowane np.
Dim arr(10,20)
- w pozycjach tablicy nie mogą się znajdować następne tablice (Array)
Notatki oraz instrukcje:
Inny algorytm dla panelu lokalnego i dla Web panelu:
Panel (wytworzony w obiekcie
PmaPanel) może być otwarty bezpośrednio w aplikacji w runtime (panel lokalny) lub w przeglądarce internetowej (Web panel). Jeżeli w takim panelu zachodzi potrzeba na przykład po naciśnięciu przycisku wywołać algorytm, który jednak ma w panelu lokalnym wykonać coć innego niż w
Web panelu, wtedy można do tego zastosować
właściwość PmgRoot.ClientType. Wartość tej właściwości określa, czy panel jest otwarty w aplikacji lub w przeglądarce internetowej. Przykłady patrz opis właściwości
ClientType.
Współużywalność paneli:
Podczas opracowywania panela przeznaczonego dla Webu jest konieczne sobie uświadomić, że taki panel w jednej chwili może być oglądany przez większą ilość klientów. Z tego powodu nie można wykorzystywać na przykład konstrukcje, kiedy jeden panel (jeden obiekt
PmaPanel) służy do przeglądania różnych urządzeń według zmiennej ustawianej na bieżąco w aplikacji. Klienci przepisywali by sobie ową zmienną i w wyniku tego widzieli by nieodpowiednie dane. Jeżeli zachodzi konieczność, żeby jeden panel oferował różne dane, wtedy najlepszym rozwiązaniem jest: