CallAxMethod - metoda objektu Pm
Popis:
Umožňuje volat metody ActiveX objektu z JavaScript (vstupně/výstupní parametry, VBArray, atd.). ActiveX používá VBScript datové typy a konvence, přizpůsobení JavaScript zajišťuje tato metoda..
Syntaxe:
Variant CallAxMethod(String sReserved, Object oAxObject, String sAxMethod, Variant arglist)
Parametry:
sReserved | (String) Rezervováno. Musí zde být prázdný řetězec (""). |
---|
oAxObject | (Object) Reference na ActiveX objekt. |
---|
sAxMethod | (String) Jméno volané metody. |
---|
arglist | (Variant) Následuje proměnlivý počet parametrů, které budou předány volané metodě v ActiveX objektu. Parametry se předávají jako vstupní parametry hodnotou. Pokud je mezi parametry PmArray, pak bude toto pole automaticky konvertováno na VBArray. |
---|
Vrácená hodnota:
Hodnota, kterou vrátila volaná ActiveX metoda. Pokud ActiveX vrátila
VBArray, pak bude toto pole automaticky konvertováno na
PmArray.
Poznámka:
Tato metoda
není funkční ve
Web obrazech.
VBScript a
ActiveX podporují vstupně/výstupní parametry, zatímco
JavaScript výstupní parametry nepodporuje. Metoda
CallAxMethod však umožní předání vstupně/výstupního parametru
ActiveX metodě pomocí pomocného objektu
PmMap následujícím způsobem:
1) Vytvoření pomocného objektu
PmMap.
2) Nastavení vlastnosti
ParValue v pomocném objektu na počáteční hodnotu vstupního parametru. Pokud předávaná hodnota musí být přesně určitého typu (integer, byte, single), pak to lze určit nastavením vlastnosti
ParType v pomocném objektu na datový typ vstupního parametru. (body 1 a 2 lze provést v jediném kroku metodou
PmMap.mapAdd).
3) Předání odkazu na pomocný objekt namísto původního parametru ve volání metody CallAxMethod.
4) Vyčtení hodnoty výstupního parametru opět z vlastnosti ParValue.
Upozornění! Pokud je vstupním parametrem PmArray, pak bude toto pole automaticky konvertováno na VBArray. Pokud je výstupním parametrem VBArray, pak bude toto pole automaticky konvertováno na PmArray.
Příklad:
Příklad volání metody
"DBGetInfo" objektu
AtouchX pro komunikaci s PLC automaty
AMiT, kde požadovaná vstupně/výstupní hodnota (
mInfo) je typu
VBArray.
JavaScriptVyber a zkopíruj do schránky
var oApp = pMe.Pm("../AtouchApp").Acx;
var mInfo = Pm.CreatePmMap();
mInfo.ParValue = Pm.CreatePmArray().Create(5);
var nState = Pm.CallAxMethod("", oApp, "DBGetInfo", nWID, mInfo);
Pm.Debug("return INFO : " + mInfo.ParValue);