Promotic

Parametry Pmg obiektu

Parametry Pmg obiektu są stałymi tekstowymi (wytworzonymi przez projektanta), które można wytworzyć w dowolnym Pmg obiektcie.
Parametry Pmg obiektu są bardzo podobne do parametrów Pma obiektu.
Jeżeli Pmg obiekt posiada parametry oraz jeżeli w edytorze grafiki znajduje się kursor myszki nad tym Pmg obiektem, wtedy te parametry (włącznie z wartościami) wyświetlają siś w pasku stanu edytora grafiki.

Parametr posiada swoją nazwę oraz wartość:
Nazwa parametru: Jest to nazwa systemowa, może zawierać tylko znaki alfanumeryczne oraz nie może zawierać znaki diakrytyczne (tzn. narodowo zależne znaki), pusty łańcuch, spacje oraz pierwszy znak nie może być liczba.
Wartość parametru jest dowolny łańcuch tekstowy. Do wprowadzenia można zastosować Makro wyrażenie (wartość jest obliczana podczas otwierania okna).


Wytworzenie parametru:
- Parametry obiektu PmgRoot definiują się w konfiguratorze "PmgObject > Obiekt > Parametry Pmg obiektu".
- Parametry dla reszty Pmg obiektów definiowane są w konfiguratorze "PmgObject > Obiekt > Parametry Pmg obiektu".


Odczyt oraz zastosowanie parametru:
Parametr można odczytywać:
- w skrypcie przy pomocy metody GetPar.
- w konfiguratorach przy pomocy makro wyrażenia $.par (np. przy definicji powiązań danych).

Oby dwa zastosowania odczytują parametr sposobem kaskadowym, tzn. jeżeli obiekt, w którym makro/metoda jest zastosowana nie posiada takiego parametru, wtedy parametr jest wyszukiwany w jego rodzicu (w obiekcie, do którego jest zagnieżdżony) aż w końcu jest wyszukiwany w obiekcie PmgRoot.
Parametr jest stosowany zwłaszcza podczas kofniguracji powiązań danych Pmg obiektów. W tym przypadku Pmg obiekt (prosty lub złożony) może mieć zdefiniowaną większą ilość powiązań danych tak, że przez konfiguracyjną zmianę wartości parametru zmienią się również odniesienia do wartości w powiązaniach danych. Inne zastosowanie parametru spoczywa w parametryzacji tekstów w obiektach PmgString, PmgButton, itd.

Zmiana wartości parametru:
- Podczas działania aplikacji (w runtime) ogólnie nie można zmieniać wartości parametru Pmg obiektu - jest stałą.
Wyjątkiem są parametry obiektu PmgRoot. Parametry te można zmienić podczas otwierania panela (w odróżnieniu od parametrów w innych Pmg obiektach). Następnie przez cały czas otwarcia są parametry te bez możliwości zmiany. Wartości parametrów podczas otwierania panela można wprowadzić na dwa sposoby:
- przy wywołaniu metody OpenView w parametrze sParams lub
Przykład: Panel można otworzyć po raz pierwszy z wartością 1, po raz drugi z wartością 2 - i w ten sposób po pierwsze wyświetlić panel dla "Kotlownia1" oraz po drugie dla "Kotlownia2".
- w środowisku deweloperskim naturalnie można wartości wszystkich Pmg obiektów zmieniać (można również dodawać lub odejmować parametry).
Główne znaczenie parametru Pmg obiektu jest w wytworzeniu interfejsu Pmg obiektu, kiedy przy skopiowaniu takiego Pmg obiektu można w prosty sposób zmienić jego parametry tak, że na przykład nie wyświetla danych "Kociol1" lecz dane "Kociol2". Tak więc parametr Pmg obiektu ułatwia wytwarzanie często stosowanych Pmg obiektów użytkownika w edytorze grafiki.

Przykład parametryzacji tekstu:
w obiekcie PmgString wytwórz parametr o nazwie na przykład NumerKotla, ustaw wartość na 1. W tym obiekcie wypełnij konfigurator "Wartość":
$.join("Temperatura w kotle", $.par("NumerKotla"))

Wynikiem jest wyświetlenie tekstu: Temperatura w kotle 1
Przykład parametryzacji powiązania danych:
Miejmy w aplikacji dane: "/Kociol1/Data" oraz "/Kociol2/Data" tego samego typu PmaData. We obu obiektach jest zdefiniowana zmienna "Temperatura. Następnie w panelu /PanelKotla znajdują się dwa obiekty do wyświetlenia obu temperatur. Jeżeli w przyszłości przybędzie następny obiekt, np. Kociol3, to żeby przez proste skopiowanie istniejącego obiektu powstał nowy obiekt wyświetlający temperaturę nowo dodanego obiektu.
Rozwiązanie:
- W obiekcie PmgString (wyświetlającym wartość temperatury) wytwórz parametr o nazwie na przykład NumerKotla, ustaw wartość na 1.
- W konfiguratorze "Wartość" owego obiektu wytwórz powiązanie danych "PP - Powiązanie danych z właściwością Pma obiektu". W powiązaniu danych wprowadź:
- Konfigurator "Obiekt" następujący tekst:
$.join("/Kociol", $.par("NumerKotla"), "/Data/#vars/Temperatura")
- Konfigurator "Właściwość" zostanie automatycznie uzupełniony tekstem Value.

W ten sposób jest poprawnie ustawiony Pmg obiekt. Obecnie można poprzez kopiowanie tego obiektu i tylko poprzez zmianę parametru NumerKotla na 2 w tej kopii zapewnić, że ów skopiowany Pmg obiekt będzie wyświetlać wartość /Kociol2/Data/#vars/Temperatura. Kiedykolwiek w przyszłości można w prosty sposób poprzez zmianę parametru tego obiektu zmienić obiekt, którego wartość powinna być wyświetlana.
Przykład wytworzenia panela z parametrem:
Miejmy w aplikacji dane: "/Kociol1/Data" oraz "/Kociol2/Data" tego samego typu PmaData. We obu obiektach jest zdefiniowana zmienna "Temperatura. Dalej istnieje panel /PanelKotla, który powinien wyświetlać temperaturę dla "Kociol1" lub dla "Kociol2" (według parametrów otwarcia okna).
Rozwiązanie:
- w panelu /PanelKotla w obiekcie PmgRoot wytwórz parametr o nazwie NumerKotla.
- Wytwórz Pmg obiekt, na przykład PmgString (będzie wyświetlać wartość temperatury). W konfiguratorze "Wartość" wytwórz powiązanie danych "PP - Powiązanie danych z właściwością Pma obiektu". W powiązaniu danych wprowadź:
- Konfigurator "Obiekt" następujący tekst:
$.join("/Kociol", $.par("NumerKotla"), "/Data/#vars/Temperatura")
- Konfigurator "Właściwość" zostanie automatycznie uzupełniony tekstem Value.

Tym samym masz poprawnie ustawiony panel. Teraz pozostaje tylko zapewnić, żeby panel został otwarty zawsze z odpowiednim parametrem. Na przykład wytwórz inny panel, z którego będziesz otwierać panel /PanelKotla. Do tego nowego panelu włóż dwa przyciski (Pmg obiekty PmgButton). Pierwszy przycisk będzie optwierać panel dla "Kociol1", drugi przycisk będzie otwierać ten sam panel dla "Kociol2". Do zdarzenia onButtonUp pierwszego przycisku wprowadź następujący skrypt:
pMe.PmPanel.OpenView "/PanelKotla", "", "pars:{NumerKotla:1;}"

Do tego samego zdarzenia następnego przycisku wprowadź podobny skrypt:
pMe.PmPanel.OpenView "/PanelKotla", "", "pars:{NumerKotla:2;}"

Obecnie uruchom aplikację i otwórz okno z przyciskami.
Po naciśnięciu pierwszego przycisku zostanie otwarte okno dla "Kociol1".
Po naciśnięciu drugiego przycisku zostanie otwarte okno dla "Kociol2".
© MICROSYS, spol. s r.o.