ColorItem w WebPanel

Główne forum techniczne dla dyskusji dotyczących problemów przy wytwarzaniu aplikacji PROMOTIC oraz sposobach ich rozwiązania.

ColorItem w WebPanel

Postby szymon1231 » Thu 26. May 2016 10:54:39

Witam,

Nie potrafię napisać skryptu, który zmieniałby kolor obiektu (panel, rect itp) w webPanelu.

Próbowałem w zdarzeniach onStart:
Code: Select all
pMe.ColorItem       = Pm.IniFileRead("#cfg:settings.ini", "bgColours", "bgPanelColour", "#10141f", vbString)


oraz za pomocą wyrażenia cfgfile:
Code: Select all
$.cfgfile("settings/bgColours/bgPanelColour","")


W obu sposobach kolor zmienia się lokalnie, natomiast w przeglądarce wyświetlają się domyślne kolory.
szymon1231
 
Posts: 12
Joined: Sun 29. Sep 2013 19:54:38

Re: ColorItem w WebPanel

Postby Kazimierz Heczko » Thu 26. May 2016 12:36:32

Witam,

pierwszy przykład nie może zadziałać w WEBpanelu, ponieważ metoda IniFileRead nie działa u klienta. Po zastanowieniu się nad tym, jest to zrozumiałe, ponieważ skrypt w elementach graficznych jest wykonywany po stronie klienta a klient nie ma do dyspozycji owego pliku INI.

Drugi przykład będzie działać w podobny sposób (czyli nie będzie działać w środowisku WEB), jeżeli polecenie jest wykonywane w skrypcie. Powodem jest fakt, że skrypt jest wykonywany po stronie klienta.
Natomiast drugi sposób miałby działać w przypadku, że byłby ustawiony w konfiguratorze koloru obiektu.
Niestety w tym miejscu nie można zastosować makro wyrażenia, i dlatego ustawienie koloru w ten sposób niestety nie zadziała.

Można by to rozwiązać w ten sposób, że w odpowiednim zdarzeniu (najlepiej w zdarzeniu onPanelStartEnd elementu PmiRoot) należy wywołać metodę obiektu PmPanel, w ktorym znajduje się dany element graficzny (ewentualnie globalną metodę aplikacji). Owa metoda byłaby wykonywana już po stronie serwera, gdzie odczyt danych z plików jest już możliwy. Metoda ta powinna zwracać odczytany kolor.

Tu zwracam uwagę na to, że nie jest zalecane, żeby taką metodę wywoływać w większej ilości elementów graficznych, ponieważ każde wywołanie metody powoduje komunikację pomiędzy klientem i serwerem, co może zbytnio obciążać całą aplikację.
Kazimierz Heczko
 
Posts: 69
Joined: Thu 13. Dec 2012 9:28:56

Re: ColorItem w WebPanel

Postby szymon1231 » Thu 26. May 2016 13:36:06

Zgodzę się z powyższym, że może być problem z odczytem pliku .ini. W takim razie funkcja wywołana w onStart:
Code: Select all
pMe.ColorItem       = "#ff0000"


powinna działać, a tak nie jest. Obiekt w panel Web'owym nadal ma kolor domyślny.
szymon1231
 
Posts: 12
Joined: Sun 29. Sep 2013 19:54:38

Re: ColorItem w WebPanel

Postby szymon1231 » Sat 28. May 2016 19:32:55

Czy dla paneli webowych należy pisać w jakimś określonym języku? Zrobiłem już kilkanaście aplikacji w Promotic, ale po raz pierwszy robię aplikację z dostępem przez Webserwer. Na chwilę obecną nie działają mi żadne skrypty napisane w VB wywoływane w funkcjach onRefresh oraz onStart obiektów.

Odpowiedź dla mnie jest dość istotna, gdyż jestem w trakcie robienia projektu i obawiam się, że będę musiał poprawiać wszystkie skrypty, ponieważ od początku coś źle robię.
szymon1231
 
Posts: 12
Joined: Sun 29. Sep 2013 19:54:38

Re: ColorItem w WebPanel

Postby Robert Siwek » Tue 31. May 2016 12:13:02

Witam,

W panelach graficznych otwieranych tylko i wyłącznie za pomocą przeglądarki IE obowiązuje składnia VB script natomiast dla wszystkich pozostałych Java script.
Robert
Robert Siwek
 
Posts: 94
Joined: Thu 13. Dec 2012 9:29:09


Return to Nie wiem jak zrobić...

Who is online

Users browsing this forum: No registered users and 6 guests