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 w Web serwerze jest konieczne, żeby miał zaznaczony konfigurator "Udostępnić 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 panelu. Następne aktualizacje panelu (patrz konfigurator "Period odświeżania danych Web panelu [s]") odbywają się automatycznie na podstawie cyklicznego odczytu danych panelu 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 cyklicznie 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 panelu 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 panelu 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 na Web serwerze 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 obraz. 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. W środowisku Web 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 "Zezwolić 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 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 runtime (panel lokalny) lub w przeglądarce internetowej (Web panel). Jeżeli w takim panelu zachodzi potrzeba na przykład po naciśnięciu klawisza 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 panelu 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:
- 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 niezależnym oknie (tzn. jeżeli był "_blank").
- panele JavaScript czasami zostały niepoprawnie wyświetlone w InternetExplorer 9.
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 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 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 funkcjonalności).
- PmgRasterImage obiekt: Jeżeli konfigurator "Wielkość" został ustawiony na wartość "Poprzez cały nadzędny", wtedy w Webie nie działo wyświetlanie obrazków 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 (te elementy ActiveX 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:
- Usunięty błąd: Zmienne Pmg obiektu nie były dostępne w przeglądarce InternetExplorer8 oraz starszych (błąd pojawił się w wersji Pm8.2.3).
- 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 obiektów ActiveX PmgTrendViewer oraz PmgWTable dla paneli Webowych typu JavaScript.
Pm8.02.00: Automatyczne wytwarzanie html stron panelu 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 kod ActiveX 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 elementy ActiveX nie funkcjonują.
- Automatyczne wytwarzanie html podczas kompilacji panelu 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 w panelu 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.