przekazanie parametru do panelu oraz skryptów (onOpen)

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

przekazanie parametru do panelu oraz skryptów (onOpen)

Postby kckc » Tue 08. Apr 2014 13:02:00

Witam,

Wywołuje panel przez :

Code: Select all
pMe.PmPanel.OpenView "/Panel", "target:blank;", "par:test=123;"


W panelu /Panel mam pole Text, które ma wyświetlać $par:test i po wywołaniu poprawnie przyjmuje wartość z wywołania ('123'). Chciałbym dodatkowo pobrać tą wartość z poziomu zdarzenia onOpen panelu /Panel. Niestety poniższe zwraca pustą wartość

Code: Select all
pMe.GetPar("test")


Jak to obejść ?
kckc
 
Posts: 5
Joined: Tue 06. Aug 2013 13:05:46

Re: przekazanie parametru do panelu oraz skryptów (onOpen)

Postby Kazimierz Heczko » Wed 09. Apr 2014 13:59:29

Witam,

żeby działało przekazywanie parametrów w metodzie OpenView, to zastosowane parametry muszą być wytworzone w danym panelu.
W opisywanym przypadku należy otworzyć dany panel w edytorze paneli graficznych i sprawdzić jego ustawienie w menu "Edytuj" pozycja "Parametry panelu".
Ta pozycja otworzy okno do definicji parametrtów panelu graficznego http://www.promotic.eu/pl/pmdoc/EditorPan/Panel/Parameters.htm.
W tym oknie musi być (w przypadku braku należy go wytworzyć) parametr o nazwie "test".
Ponadto jeszcze chciałbym zwrócić uwagę na fakt, że jeżeli w elemencie graficznym jest wytworzony parametr o tej samej nazwie, to zostanie zastosowana jego wartość zamiast wartości parametru panelu (lub obiektu nadrzędnego).

Pozdrawiam
Kazimierz Heczko
 
Posts: 69
Joined: Thu 13. Dec 2012 9:28:56

Re: przekazanie parametru do panelu oraz skryptów (onOpen)

Postby kckc » Tue 15. Apr 2014 11:16:48

Witam,

No niestety tak to też nie chce działać. Załączam przykładowy projekt, w którym to demonstruje.

Po kliknięciu OpenView otwiera się panel z 2ma polami Text - jedno uzupełnia się poprzez
Code: Select all
$par:test

Drugie poprzez openView
Code: Select all
pMe.Items("/Text_openView").SetProp "Value", pMe.GetPar("test")


W pierwszym przypadku dostajemy '123' w drugim '_Empty_'.
Attachments
PmOpenViewParamTest.zip
Projekt gdzie w onOpen nie widać parametru przekazanego z openView.
(8.02 KiB) Downloaded 669 times
kckc
 
Posts: 5
Joined: Tue 06. Aug 2013 13:05:46

Re: przekazanie parametru do panelu oraz skryptów (onOpen)

Postby Kazimierz Heczko » Wed 16. Apr 2014 9:53:04

Witam,

przykład przesłany przez Pana działa prawidłowo.
Pierwszy element ma wyświetlać wartość parametru o nazwie "test" panelu graficznego. I taką wartość wyświetla.
Natomiast drugi element nie ma wyświetlać wartości parametru panelu graficznego, lecz ma wyświetlać wartość parametru obiektu typu PmPanel.
żeby przekonać się o opoprawnym funkcjonowaniu wystarczy otworzyć panel o nazwie PanelTitle nie za pomocą przycisku w panelu MainPanel lecz za pomocą przycisku "Panele" w pasku narzędziowym.
Wtedy pierwszy element nie wyświetla wartości przekazanej do panelu przy pomocy metody OpenView (wartość "123") lecz wyświetla wartość parametru ustawioną domyślnie (wartość "???").

Natomiast wartość drugiego elementu jest określana w zdarzeniu onOpen obiektu PmPanel.

Tu muszę powiedzieć, że takie podejście może funkcjonować tylko dla tych paneli, które mają ustawiony konfigurator "Poziom integracji przeglądarki paneli i aplikacji lokalnej" na wartość "full".
Czyli w ten sposób nie będą funkcjonować panele WEBowe (niezależnie czy VBScript czy JavaScript).
W przypadku paneli lokalnych w języku VBScript funkcjonowanie będzie również ograniczone w przypadku, że ten konfigurator będzie ustawiony inaczej.
Między innymi z tego powodu nie zalecam wykorzystywania tego rodzaju zdarzeń w obiekcie PmPanel do ustawiania wartości elementów graficznych.

Wracając do zdarzenia onOpen obiektu PmPanel to jest to zdarzenie wywoływane przy otwarciu tego panelu bez względu na to, czy do panelu były czy nie były przekazane jakieś parametry przy pomocy OpenView.
W dołączonej aplikacji wytworzyłem również parametr obiektu PmPanel (w edytorze aplikacji). Po jego wytworzeniu drugi element wyświetla wartość owego parametru.
Tu ważnym jest, żeby sobie uświadomić, że obiekt PmPanel i jego zawartość w edytorze paneli graficznych to nie to samo.
Dlatego można wytwarzać parametry zarówno w obiekcie PmPanel (oraz innych obiektach w edytorze aplikacji). Te parametry nie są automatycznie przekazywane do panelu graficznego w formie jego parametrów (w edytorze paneli graficznych).

W edytorze paneli można również wytwarzać parametry panelu graficznego. Wartości tych parametrów można przekazywać przy pomocy metody OpenView.

Mam nadzieję, że powyższy opis będzie wystarczająco zrozumiały.

Pozdrawiam

Pozdrawiam
Attachments
PmOpenViewParamTest_new.zip
(8.79 KiB) Downloaded 626 times
Kazimierz Heczko
 
Posts: 69
Joined: Thu 13. Dec 2012 9:28:56


Return to Nie wiem jak zrobić...

Who is online

Users browsing this forum: No registered users and 1 guest

cron