Update cookies preferences
Promotic

Metody - karta objektu PmaObject

Popis:
V této kartě se definují metody projektanta tohoto objektu.
Tlačítka:
NováOtevře konfigurační okno "Metoda", ve kterém lze přidat novou metodu.
SmazatSmaže označenou metodu
EditaceOtevře konfigurační okno "Metoda", ve kterém lze editovat označenou metodu.
Poznámka:
V této kartě lze do objektu přidávat další metody. Správné užívání těchto metod velmi zjednodušuje a zčitelňuje aplikaci.
Příklad použití: Představme si složku PmaFolder, která představuje nějaké zařízení (např. Kotel). Někdy je nutno odstavit tento Kotel z jiné složky. Lze to dělat tak, že v jiné složce bude podrobný algoritmus jak odstavit Kotel ale daleko lepší je vytvořit metodu přímo v objektu Kotel, ve které bude algoritmus pro odstávku. Z jiné složky se pak zavola pouze tato metoda.

V této kartě lze definovat libovolný počet metod. Na každém řádku seznamu (který je vlevo nahoře) je definice právě jedné metody. Tyto metody lze volat pomocí vlastnosti PmaObject.Methods nebo Pm.Methods.
Parametry metody:
pMe(Object) Reference na Pma objekt, ve kterém je metoda definována.
pResult[jen pro zápis] (Variant) Výstupní parametr, který slouží ke vrácení výsledné hodnoty metody.
Je dostupný pouze pro metody, které jsou psány v jazyce VBScript. Pro jazyk JavaScript se vrácená hodnota zadá v příkaze return.
pContext(Object) (pro objekty PmaRoot a PmaPanel) obsahuje referenci na objekt s dodatečnými informacemi o způsobu, kterým byla metoda volána.
pContext.User - (Object) vlastnost s referencí na objekt PmUser, ve kterém jsou podrobnější informace o uživateli (lokálním nebo síťovém), který metodu zavolal. Lze použít například:
- ke chránění metody na konkrétního přihlášeného uživatele nebo skupinu uživatelů.
- pro ukládání a čtení stavových privátních dat uživatele pomocí metod SetPrivateData a GetPrivateData.

Upozornění! Aby v podobjektu User byla věrohodná hodnota, je nutno, aby v příslušném oprávnění WebRead nebyly pseudo skupiny $ANY a $ANY_NET (tzn. aby při otevření Web stránky musel být přihlášen uživatel).
pContext.Language - (String) vrací informaci o požadovaném národním jazyce, ve kterém jsou požadovány případné textové výstupy metody (vhodné zejména při volání metody z Web obrazů). Jazyk je určen textovým identifikátorem, např. "cs", "sk", "en" atd. - viz Jazyky s plnou podporou v systému PROMOTIC. Viz konfigurátor "Hlavní jazyk runtime".
pContext.TypeEnable - (Long) Typ povolení volání metody klientem. Projektant může (podle nastaveného uživatele, hesla nebo adresy počítače) operaci zakázat.
Nastavení tohoto parametru je doporučeno pouze pro speciální případy. Běžné zabezpečení je lepší provádět standardně pomocí oprávnění: WebMethods.
Upozornění! Vlastnost je funkční pouze pro Web obrazy.
1 (přednastaveno) - povolení operace.
-1 - vyžádání přihlášení uživatele (pokud uživatel nebyl zadán) nebo zakázání uživatele (pokud uživatel byl zadán ale je špatný název a heslo).
-2 - zakázání operace pro daného klienta bezpodmínečně.
Parametry definované projektantem(Variant) Slouží jako předávané parametry při volání dané metody. Tyto parametry se definují v konfigurátoru "Parametry".
Metody definované v této kartě pro objekt PmaPanel (metody obrazu) a pro objekt PmaRoot (globální metody aplikace) lze volat i ve skriptech grafických obrazů, které jsou určené pro Web sdílení.

Seznam používaných metod a počet jejich spuštění lze vidět v INFO systému v kartě při prohlížení daného objektu. V této kartě lze i spustit vybranou metodu (pouze pokud metoda nemá parametry) po vybrání z kontextového menu (pravým tlačítkem myši). Viz oprávnění "PmaRoot > Oprávnění > InfoEdit".

Upozornění! Pro objekt PmaPrototype platí, že metoda se přenese do objektu PmaInstance při spuštění aplikace, pokud v objektu PmaInstance ještě metoda s tímto názvem neexistuje.
Příklad1:
V objektu PmaFolder je objekt PmaData (s názvem "DAT"), který obsahuje několik proměnných (se jmény například "data1", "data2", atd.) Vytvoříme jednoduchou metodu v objektu PmaFolder s názvem "dataadd" s jedním parametrem (s názvem "par1"), který představuje název proměnné. Metoda vrací hodnotu požadované proměnné zvětšené o 10.
JavaScriptVBScriptVyber a zkopíruj do schránky

var val = pMe.Pm("DAT").Item(par1).Value;
return val + 10;
Tuto metodu pak můžeme kdekoli volat:
JavaScriptVBScriptVyber a zkopíruj do schránky

var n = oFolder.Methods.dataadd("data1");
Příklad2:
Test, zda uživatel volající danou metodu je síťový uživatel a člen skupiny $ADMIN:
JavaScriptVBScriptVyber a zkopíruj do schránky

if (pContext.User.Type == 2 && Pm.TestUserInGroup(1, "$ADMIN", pContext.User.Id))
{
// ...
}
Příklad3:
Volání globální metody GetStartTime (to znamená definovanou v objektu PmaRoot) s parametrem par1 (tímto způsobem lze vyvolat tuto metodu v aplikaci i ve Web obrazu):
JavaScriptVBScriptVyber a zkopíruj do schránky

var val = Pm.Methods.GetStartTime(par1);
Další příklady:
Viz příklady v popisu vlastnosti PmaObject.Methods.

Historie:
Pm9.00.25: Tato karta přidána i do objektu PmaPrototype.
Pm8.03.00: Tuto kartu má nyní každý Pma objekt a Pmg objekt (předtím ji mělo pouze několik typů Pma objektů).
Pm8.00.08: a Události byly zrušeny tlačítka "Test" (pro syntaktickou kontrolu správnosti skriptu) a "Edit" (pro zvětšení editoru skriptu na celou obrazovku). Tyto funkčnosti byly přesunuty do kontextového menu v editoru skriptu.
Pm8.00.00: Globální metody aplikace (tzn. metody definované v kartě "Metody" objektu PmaRoot) již standardně nelze ve skriptech volat přímo pouze názvem, ale volají se pomocí vlastnosti Pm.Methods. Důvodem jsou omezení, které má přímé volání - například není funkční pro Web obrazy. Starý způsob volání (tzn. volání přímo názvem metody) lze pořád používat, ale musí se ve skriptu použít direktiva skriptu #pragma option OldGlobalMethodCall s hodnotou 1 (je to příznak pro staré volání metody). Ve stávajících aplikacích při přechodu na verzi PROMOTIC 8 dojde ke konverzi: do všech globálních metod je tato direktiva skriptu vložena a aplikace je tedy funkční.
© MICROSYS, spol. s r.o.