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

Toto je hlavní technické fórum pro diskusi o problémech při vytváření PROMOTIC aplikací a jejich řešení.

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

Postby Vladimir Kostal » Tue 01. Dec 2020 17:54:16

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
Vladimir Kostal
 
Posts: 5
Joined: Mon 10. Jun 2019 11:41:16

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

Postby albiman » Wed 02. Dec 2020 10:23:10

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.

.
albiman
 
Posts: 26
Joined: Tue 12. Feb 2013 21:51:12

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

Postby Vladimir Kostal » Wed 02. Dec 2020 16:45:57

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".
Vladimir Kostal
 
Posts: 5
Joined: Mon 10. Jun 2019 11:41:16

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

Postby Petr Návrat » Thu 07. Jan 2021 10:09:01

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
Petr Návrat
Administrátor
 
Posts: 75
Joined: Thu 13. Dec 2012 14:32:08


Return to Nevím jak...

Who is online

Users browsing this forum: No registered users and 2 guests

cron