Promotic
Zalogowanie logon

Metody - karta obiektu PmaObject

Opis:
W tej karcie można zdefiniować metody projektanta tego obiektu.
Przyciski:
NowaOtworzy okno konfiguracyjne "Metoda", w którym można dodać nową metodę.
UsuńUsunie zaznaczoną metodę
EdytujOtworzy okno konfiguracyjne "Metoda", w którym można edytować zaznaczpną metodę.
Notatka:
W tej karcie można dodać do obiektu następne metody. Poprawne stosowanie takich metod bardzo upraszcza aplikację i czyni ją bardziej czytelną.
Przykład zastosowanie: Założmy, że istnieje folder PmaFolder, który przedstawia jakieś urządzenie (np. Kociol). W niektórych przypadkach jest konieczne wyłączenie Kotła z innego foldera aplikacji. Można to wykonać tak, że w innym folderze będzie się znajdować szczegółowy algorytm do wyłączenia Kotła, lecz lepszym rozwiązaniem jest wytworzenie metody bezpośrednio w obiekcie Kociol, w której będzie się znajdować algorytm wyłączenia. Z innego foldera następnie wystarcze tylko wywołać taką metodę.

W tej karcie można określić dowolną liczbę metod. Na każdym wierszu listy (która znajduje się po lewej u góry) znajduje się definicja właśnie jednej metody. Takie metody można z kolei wywoływać przy pomocy właściwości PmaObject.Methods lub Pm.Methods.
Parametry metody:
pMe(Object) Odniesienie do Pma obiektu, w którym metoda jest zdefiniowana.
pResult[tylko do zapisu] (Variant) Wyjściowy parametr, który służy do zwrócenia końcowej wartości metody.
Jest dostępny tylko dla metod, które są pisane w języku VBScript. Dla języka JavaScript wartość zwrotna zostanie określona w poleceniu return.
pContext(Object) (dla obiektów PmaRoot oraz PmaPanel) zawiera odniesienie do obiektu z dodatkowymi informacjami o sposobie, jakim metoda została wywołana.
pContext.User - (Object) właściwość z odniesieniem do obiektu PmUser, w którym znajdują się szczegółowe informacje o użytkowniku (lokalnym lub sieciowym), który wywołał metodę. Można zastosować na przykład:
- do zabezpieczenia metody dla konkretnego zalogowanego użytkownika lub dla grupy użytkowników.
- do zapisu i odczytu prywatnych danych użytkownika przy pomocy metod SetPrivateData oraz GetPrivateData.

Uwaga! Żeby w podobiekcie User znalazła się wiarygodna wartość jest konieczne, żeby w odpowiednim uprawnieniu WebRead nie bzůo pseudo grup $ANY oraz $ANY_NET (tzn. żeby podczas otwarcia strony webowej użytkownik musiał być zalogowany).
pContext.Language - (String) zwraca informację owymaganym języku narodowym, w którym są wymagane ewentualne wyjścia tekstowe metody (odpowiednie zwłaszcza przy wywołaniu metody z Web paneli). Język jest określony przez identyfikator tekstowy, np. "pl", "en", "cs" itd. - patrz Języki z pełnym wsparciem w systemie PROMOTIC. Patrz konfigurator "Główny język runtime".
pContext.TypeEnable - (Long) Typ zezwolenia wołania metody poprzez klienta. Projektant może (według ustawionego użytkownika, hasła lub adresu komputera) wyłączyć działanie.
Ustawienie tego parametru jest zalecane tylko w specjalnych przypadkach. Jest dogodniejszym wykonywać powszechne zabezpieczenie w standardowy sposób przy pomocy uprawnienia: WebMethods.
Uwaga! Właściwość działa tylko dla Web panele.
1 (domyślnie) - zezwolenie na operację.
-1 - żądanie zalogowania użytkownika (jeżeli użytkownik nie został określony) lub wprowadzenie użytkownika (jeżeli użytkownik został określony ale jego nazwa oraz hasło są nipoprawne).
-2 - zakazanie operacji dla danego klienta bezwarunkowo.
Parametry zdefiniowane przez projektanta(Variant) Służy jako przekazywane parametry przy wywołaniu danej metody. Parametry te można zdefiniować w konfiguratorze "Parametry".
Metody zdefiniowane w tej karcie dla obiektu PmaPanel (metody panelu) oraz dla obiektu PmaRoot (globalne metody aplikacji) można wywoływać także w skryptach paneli graficznych, które są przeznaczone do współdzielenia na Web-ie.

Listę zastosowanych metod oraz liczba ich wykonania można zobaczyć w INFO systemie w karcie podczas przeglądania danego obiektu. W tej karcie można także uruchomić wybraną metodę (tylko jeżeli metoda nie poisada żadnych parametrów) po wyborze z menu kontekstowego (prawym przyciskiem myszki). Patrz uprawnienie "PmaRoot > Uprawnienia > InfoEdit".

Uwaga! Dla obiektu PmaPrototype jest ważne, że metoda zostanie przekazana do obiektu PmaInstance przy uruchamianiu aplikacji, jeżeli metoda o tej nazwie jeszcze nie istnieje w obiekcie PmaInstance.
Przykład1:
W obiekcie PmaFolder znajduje się obiekt PmaData (o nazwie "MyData"), który zawiera kilka zmiennych (o nazwach na przykład "data1", "data2", itd.)
Wytworzymy prostą metodę w obiekcie PmaFolder o nazwie "DataAdd" o jednym parametrze (o nazwie "par1"), który przedstawia nazwę zmiennej. Metoda zwraca wartość wymaganej zmiennej zwiększoną o 10.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var nVal = pMe.Pm("MyData").Item(par1).Value;
return nVal + 10;
Metodę tą można następnie wywoływać z dowolnego miejsca:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var nVal = oFolder.Methods.DataAdd("data1");
Przykład2:
Test, czy użytkownik, który wywołał daną metodę jest członkiem grupy $ADMIN:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

if (pContext.User.Type == 2 && Pm.TestUserInGroup(1, "$ADMIN", pContext.User.Id))
{
// ...
}
Przykład3:
Wołanie globalnej metody GetStartTime (to znaczy określonej w obiekcie PmaRoot) z parametrem par1 (w ten sposób można wywołać globalną metodę zarówno w aplikacji jak również w panelu webowym):
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var nVal = Pm.Methods.GetStartTime(par1);
Następne przykłady:
Patrz przykłady w opisie właściwości PmaObject.Methods.

Historia:
Pm9.00.25: Karta ta została dodana również do obiektu PmaPrototype.
Pm8.03.00: Taką kartę teraz posiada każdy Pma obiekt oraz Pmg obiekt (wcześniej ją posiadało tylko kilka typów Pma obiektów).
Pm8.00.08: oraz Zdarzenia zostały usunięte przyciski "Test" (do kontroli składniowej poprawności skryptu) i "Edit" (do ziwększenia edytora skryptu na cały ekran). Te funkcjonalności zostały przesunięte do menu kontekstowego w edytorze skryptu.
Pm8.00.00: Globalne metody aplikacji (tzn. metody określone w karcie "Metody" obiektu PmaRoot) teraz nie można już wołać w skryptach bezpośrednio tylko pod nazwą, ale należy je wołać przy pomocy właściwości Pm.Methods. Powodem są ograniczenia, które posiada bezpośrednie wołanie - na przykład nie działa dla Web panele. Stary sposób wołania (tzn. wołanie bezpośrednio nazwą metody) mażna nadal stosować, ale w skrypcie należy zastosować dyrektywę #pragma option OldGlobalMethodCall z wartością 1 (jest to znacznik dla starego wołania metody). Podczas konwersji aplikacji do wersji PROMOTIC 8 zostanie wykonane: do wszystkich globalnych metod zostanie włożona ta dyrektywa skryptu a aplikacja będzie sprawnie działać.
© MICROSYS, spol. s r.o.Update cookies preferences