Promotic

Web panele

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:
- zakreślić konfigurator "Zezwól jako komponent WEBowy" w karcie "Web serwer"
- 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 powiązań danych:
NIE MOŻNA wykorzystywać powiązań danych S - Powiązanie danych z zawartością pliku tekstowego oraz VB - Powiązanie danych z wyrażeniem skryptowym


- 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ć:
- przez wywołanie metod pMe.PmPanel.Methods.XXX(a,b,..).
- przez wywołanie metod globalnych aplikacji z zastosowaniem Pm.Methods.XXX(a,b,..).
- Można korzystać z obiektu pMe.PmPanel, przy pomocy którego można wpływać na cały panel. W uzyskanym obiekcie PmaPanel działają jednaktylko natępujące metody: Methods, OpenView, ViewerType, Close.
- Skrypty można zastosować prawie we wszystkich zdarzeniach Pmg obiektów. Dla Webu na razie nie funckjonują zdarzenia: PmgWEdit.onDataEditing oraz PmgWEdit.onDataEditCancel.
- Dla Web na razie nie funkcjonują właściwości i metody Pmg obiektów: Blink, Focus, MouseOn, Refresh, ScreenX, ScreenY.
- 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::
- PmgRasterImage: Konfigurator "Zezwól kolor przejrzystość" nie jest brany pod uwagę.
- PmgWCombo: Konfigurator "Sortuj" nie jest brany pod uwagę.
Konfigurator "Typ" z opcją "Wybór i edycja" w chwli obecnej nie działa dla Webu.
- PmgVideo: Wartość "-1 = Powtarzaj w tył" w konfiguratorze "Kierunek odtwarzania" nie są brane pod uwagę.
Metody Seek oraz Sound nie funkcjonują.
- 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 równocześnie 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:
- zastosowanie parametrów obiektu PmgRoot (patrz: Parametry Pmg obiektu) oraz/lub

Historia:
Pm9.00.00: 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.
Pm8.03.19: Różne korekty błędów w wyświetlaniu stron Webowych paneli, alarmów, trendów, formularza (obiekt PmForm) itd.
Pm8.03.13: Uproszczono logowanie użytkowników w Webie. Podczas wprowadzenia błędnego loginu lub hasła zostanie otwarte okno powiadomień z przyciskiem, przy pomocy którego można wywołać nowe zalogowanie.
Pm8.03.12:
- Usunięty błąd: Obiekt PmgWCombo był wyświetlany o niewłaściwej wysokości.
- Udoskonalono okno logowania użytkowników (otwierane przy pomocy metody Pm.WndLogon).
Pm8.03.11: Usprawniono metodę Pm.WndLogon również dla przeglądarki Chrome.
Pm8.03.06:
Nowy konfigurator "PmaPanel > Web serwer > Sposób wyświetlania błędów odświeżania": Umożliwia zabronić pojawianiu się alertu w panelu podczas wystąpienia utraty łączności z serwerem.
Przetworzono menu lokalne (onMenuFill oraz onMenuSelect) w taki sposób, że działa we wszystkich przeglądarkach.
Pm8.03.05: Usunięty błąd: Niepoprawnie obliczano rozmiar oraz pozycję panela otwieranego w nowym oknie (tzn. jeżeli był "target:_blank;").
Pm8.03.04: Usunięty błąd: Korekty błędów które wystąpiły podczas korzystania ze starszej przeglądarki InternetExplorer 8.
Pm8.03.02:
- Usprawnione metody Pm.CreateDate oraz Pm.FormatDate.
- Usprawniona edycja w Touchpad przeglądarkach, które nie wspierają myszki - na przykład Android. Przeglądarki te nie wspierają dwukrotne kliknięcie lewym przyciskiem myszki, który powoduje otwarcie edycji w obiektach PmgString oraz PmgWTable. Teraz można przejść do trybu edycji Pmg obiektu również wyborem z menu lokalnego Pmg obiektu - tzn. na przykład w Android dłużsszym przytrzymaniem palca ponad Pmg obiektem.
- Poprawiony tryb edycji w obiekcie PmgWEdit - nie działał w Chrome oraz Android.
Pm8.03.01:
- Otwarcie panela zawieszało się w przypadku wpisania znaków diakrytycznych (tzn. narodowo zależne znaki) w parametrach panela.
- Obiekt PmgTrendViewer w panelach JavaScript: Optymalizacja zapytań w przypadku ich dużej ilości lub częstotliwości.
- Udoskonalono wyrysowanie Pmg obiektów również dla starszych przeglądarek InternetExplorer 8.
- Korekta jest wprowadzona również do wersji Pm8.2.18.
Pm8.02.17: W obiektach PmgString oraz PmgWEdit udoskonalona praca z fokusem podczas zakończenia edycji.
Pm8.02.15:
- Jeżeli w panelu zostało zastosowane niewspierane powiązanie danych VB - Powiązanie danych z wyrażeniem skryptowym lub S - Powiązanie danych z zawartością pliku tekstowego, wtedy Web panel w ogóle nie został odczytany. Teraz zostanie wczytany lecz nie będą działały następujące powiązania.
- onMousePress zdarzenie: (w Firefox lub Chrome) działało nawet jeżeli sterowanie było zabronione.
Pm8.02.13:
- Ulepszenie automatycznie generowanych HTML paneli dla InternetExporer 11 (w tej przeglądarce Microsoft znów przestał wspierać niektóre technologie).
- PmgRasterImage obiekt: Jeżeli konfigurator "Wielkość" został ustawiony na wartość "Poprzez cały nadzędny", wtedy w Webie nie działo wyświetlanie obrazka w formacie PNG.
- PmgTrendViewer obiekt: emulowany w HTML (tzn. w panelach JavaScript):
- Uruchomienie wyświetlania czasu obok kursora.
- Korekta w metodzie AddTrend.
Pm8.02.12:
- Pm.WndLogon metoda: Usprawniona również dla innych przeglądarek aniżeli InternetExplorer.
- PmgTrendViewer obiekt: emulowany w HTML (tzn. w panelach JavaScript):
- Usprawnione właściwości TimeMin oraz TimeMax
- Usprawnione przeglądanie trendów przy pomocy tabeli
Pm8.02.10: Dla InternetExplorer 8 (oraz niższe): Obiekty PmgTrendViewer oraz PmgWTable w panelach JavaScript nie są emulowane (ponieważ ta stara przeglądarka nie wspiera niektórych ważnych standardów), ale przeglądarka przełączy się do trybu pełnego wyświetlenia ActiveX obiektu (te ActiveX obiekty muszą zostać u klienta zainstalowane) - podobnie jak dla paneli VBScript.
Pm8.02.09:
- Udoskonalona emulacja obiektu PmgTrendViewer oraz PmgWTable dla JavaScript paneli.
- W przypadku obiektów PmgBarBox oraz PmgSliderBox zostały przerzucone limity urządzeń oraz limity technologiczne.
- Metody Pm.GetBit oraz Pm.SetBit zostały usprawnione dla Webu.
Pm8.02.07:
- Udoskonalona emulacja obiektu PmgTrendViewer dla paneli JavaScript.
- Uruchomiona metoda PmgFrame.OpenView.
Pm8.02.05:
- Udostępniony konfigurator "Wzór" dla obiektów PmgRectangle oraz PmgEllipse.
- Udostępniony konfigurator "Zaokrąglenie rogu X" dla obiektu PmgRectangle.
- Udostępniony metoda Pm.StringScan.
- Udoskonalona emulacja obiektu PmgTrendViewer dla JavaScript paneli graficznych.
Pm8.02.04: Optymalizacja wyświetlania trendów przy pomocy obiektu PmgTrendViewer w Webie w przypadku wolnego połączenia HTTP.
Pm8.02.03: Udoskonalona emulacja obiektów PmgTrendViewer oraz PmgWTable dla paneli JavaScript.
Pm8.02.01: Udoskonalona emulacja ActiveX obiektów PmgTrendViewer oraz PmgWTable dla paneli Webowych typu JavaScript.
Pm8.02.00: Automatyczne wytwarzanie HTML stron panela zostało udoskonalone tak, że obecnie strony funkcjonują również w przeglądarkach Firefox, Chrome, Opera .... W celu pełej funkcjonalności są jednak konieczne zmiany w panelu:
- zdarzenia Pmg obiektu muszą być napisane w języku JavaScript. Ten język jest nowo wprowadzonym do systemu PROMOTIC i na razie służy tylko dla paneli, które mają funkcjonować w Webie.
Język JavaScript jest nowocześniejszym, bardziej powszechnym i dla potrzeb systemu PROMOTIC nawet prostszym niż język VBScript. Patrz Porównanie języków VBScript oraz JavaScript.
- Obiekty PmgTrendViewer i PmgWTable są emulowane w HTML (tzn. w przeglądarce nie jest uruchamiany ActiveX obiekt lecz wszystko funkcjonuje jako standardowe HTML). W obecnej wersji obiekty te nie są jeszcze w pełni funkcjonalne - są uruchomione tylko podstawowe funkcje.
Poza tymi dwoma obiektami inne ActiveX obiekty nie funkcjonują.
- Automatyczne wytwarzanie html podczas kompilacji panela jest szybsze a wytwarzane strony html są mniejsze.
Pm8.01.12: Duże poprawki dla przeglądarki InternetExplorer 10. Niestety ta wersja przeglądarki przestała wspierać niektóre technologie, z których korzystały Web panele do wersji PROMOTIC 8.2. (Wersja PROMOTIC 8.2 już wspiera standardowe technologie HTML a tym można przeglądać Web panele również w przeglądarkach Chrome, Firefox, Edge, InternetExplorer ...)
Pm8.01.08: Bezpieczniejsze obliczanie powiązań danych.
Pm8.01.01: Metody Pm.ColorOper oraz Pm.ColorRgb funkcjonują również dla Web paneli.
Pm8.01.00: C++ formatowanie (patrz konfigurator "Typ formatowania wartości") jest obecnie implementowane bezpośrednio do panela i dlatego już nie jest konieczny pomocniczy ActiveX obiekt PmAxTool1.
Pm8.00.11:
- W niektórych przypadkach dochodziło do błędnego opracowania wartości rzeczywistych z kropką dziesiętną, jeżeli w środowisku (gdzie aplikacja działała) był ustawiony znak dziesiętny jako przecinek.
- Niekiedy doszło do błędnego opracowania powiązanie danych "LN - Powiązanie danych do obliczenia wedłu funkcji liniowej"
Pm8.00.07: Usunięty błąd: Nie funkcjonowały niektóre konfiguratory ustawione przy pomocy Makro wyrażenie $.par.
Pm8.00.06: Usunięty błąd:
- Uruchomione dalsze metody/właściwości/zdarzenia Pmg obiektów i obecnie jest u wszystkich opisane, czy funkcjonuje czy też nie w Web panelach.
- Metody OpenView oraz OpenViewModal: uruchomione otwieranie okien na określonej pozycji o określonym rozmiarze (tzn. w parametrze sOptions jest brane pod uwagę ustawienie pos:xx; oraz size:xx;).
Pm8.00.02:
- Dla Webu usprawniono wołanie metod: Pm.Logoff, Pm.WndLogoff oraz Pm.WndLogon.
- Zmieniono sposób wyświetlania obiektu PmgVideo na stonie HTML. Stary sposób nie działał w InternetExplorer8.
© MICROSYS, spol. s r.o.