Page 1 of 1

Aktivace Pm.MessageBox ve web po systémové události

PostPosted: Tue 01. Dec 2020 17:54:16
by Vladimir Kostal
Dobrý den,
Mám objekt Comm PmChar (ethernet) - komunikace ASCII/BIN protokolem. Pokud mu zašlu příkaz na podřízenou PmCommMsg, zpracovávám výsledek v její události onEndOfTransfer. Podle toho jaký je pEvent.Error, vyhodnotím výsledek a rád bych zobrazil MessageBox. To vše funguje, ale pouze v případě, že událost byla vyvolána aktivací tlačítka v runtime promotic. I v případě, že je událost aktivována ve web obraze, je MessageBox zobrazen v runtimu tzn. pro uživatele webového obrazu neviditelný.

Dá se s tím něco dělat ?

S pozdravem,
Vladimír Košťál

Re: Aktivace Pm.MessageBox ve web po systémové události

PostPosted: Wed 02. Dec 2020 10:23:10
by albiman
Zdravím.
Napadá mě například vytvořit v PmData proměnnou do které se bude zapisovat výsledek události.
Pak v Pm obraze navázat nějaký grafický prvek na tuto proměnnou a v onrefresh události zpracovat hlášku / messagebox.

Jde o to, že web obraz je v podstatě oddělený objekt od hlavní aplikace (základ fungování webu), pokud chcete zpracovávat události aplikace na webu, je potřeba je do webu posílat přes datové vazby a až grafickém prvku je zpracovat do hlášení.
Navíc webová aplikace je asynchronní, tzn, je vázana na refresh webovky.

.

Re: Aktivace Pm.MessageBox ve web po systémové události

PostPosted: Wed 02. Dec 2020 16:45:57
by Vladimir Kostal
Dobrý den,
zkoušel jsem to přes PmAction. Sice to nechápu úplně - není to popsáno pro mě úplně dostatečně - ale podle popisu by to mohlo být to pravé.

V tlačítku, které celou záležitost aktivovalo, jsem nejprve vytvořil metodu, která by měla vyvolat MessageBox s výsledkem operace.

Na ni jsem navázal PmAction, která je vytvořena při aktivaci tohoto tlačítka. Vytvořený objekt jsem předal jako argument do metody pod PmRoot, která celou činnost spouštěla na straně Promoticu. Do této metody byl opravdu objekt předán jako typ PmAction.

Tato metoda volá PmSequencer s parametrem vytvořeným Array (...). Jedním z nich byl i PmAction - jako poslední. Ale když si ověřuji, jak veliké pole jsem si předal, zjišťuji, že poslední argument, kterým je právě PmAction tam vůbec není. Stejně jsem dopadnul, pokud jsem ho zařadil jako samostatný argument, Pm.GetVarType(pEvent.Val2, 1) vraci "undefined".

Re: Aktivace Pm.MessageBox ve web po systémové události

PostPosted: Thu 07. Jan 2021 10:09:01
by Petr Návrat
Dobrý den
Přes objekt PmAction toto řešit nelze protože ten nelze předávat mezi WEB obrazem a lokální aplikací.
Správné řešení je to, které Vám nastínil albiman

Petr Návrat