PmPanel.OnOpen - pMe.GetPar("parametr")

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

PmPanel.OnOpen - pMe.GetPar("parametr")

Postby albiman » Wed 27. Aug 2014 21:16:18

Dobrý den,
řeším aktuálně problém s načtením parametru předaného ve volání metody OpenView z PmiButtonu, v tlačítku mám:
Code: Select all
if (pEvent.Action == 0 )
{
  var TmpS = pMe.Vars("nazev");
  TmpS = "par:trend=" + TmpS +  ";";
  Pm.Debug("obr: " + TmpS); // zde je ve v poradku
  pMe.PmPanel.OpenView("/system/trendy", "target:main;", TmpS);
};


a v promotic objektu pmPanel ("/system/trendy") mám v události OnOpen:
Code: Select all
sPar = pMe.Pm(".").GetPar("trend")
// nebo
sPar = pMe.GetPar("trend")

Avšak hodnota proměnné sPar má stále hodnotu <NULL>, pokud použiju parametr v obraze přes makro $par, tak tam je správná hodnota parametru.
Kde je tedy chyba, děkuji za rady. :?:
albiman
 
Posts: 26
Joined: Tue 12. Feb 2013 21:51:12

Re: PmPanel.OnOpen - pMe.GetPar("parametr")

Postby Tomáš Bräuer » Thu 28. Aug 2014 8:58:18

Nenapsal jste verzi promotic, což může být zásadní, vycházím tedy s poslední verze.
To, co se pokoušíte udělat nejde a ani to nedává moc smysl.
Máme 2 stromy objektů se svými kontexty, a to 1) aplikace s promotic objekty a 2) obsah obrazu s grafickými prvky.
Metoda PmObject.GetPar nad PmPanel objektem volaná v PmPanel.onOpen vrací parametr promotic objektu (a je jedno jestli to je PmPanel nebo PmFolder). V OpenView jste předal aktuální parametry dovnitř do právě otevíráného obsahu obrazu (parametrizujete obsah obrazu a ne aplikaci).
Možná by vám fungovalo:
sPar = pMe.Items("/").GetPar("trend")

což udělá to, že u otevřeného obrazu (nesmí být restricted nebo javascript, což ale asi máte, takže vám to fungovat nebude) si získáte referenci na PmiRoot grafický prvek a nad ním zavoláte metodu PmiItem.GetPar.

Ve verzi 8.3.0, kterou připravujeme k uvolnění jako vývojovou (testovací) verzi, je už toto řešeno i pro javascript obrazy. Obecně totiž platí, že z aplikace se nesmíte dostat dovnitř otevřeného obrazu a naopak (obrazů může být teoreticky otevřeno více současně a to i na webu). Proto se toto dneska všechno řeší uvnitř obrazu v prvku PmiRoot.

Pro vás to znamená, buď použít VBScript Full obraz se všemi omezeními (trendy jako activex i na webu => jenom InternetExplorer) nebo to uděláte projekčně jinak. Musíte se smířit s tím, že u javascript obrazu aplikace nemá možnost si dovnitř obrazu šáhnout. Musíte si tu poslední hodnotu někde v aplikaci zapamatovat.
Tomáš Bräuer
Administrátor
 
Posts: 153
Joined: Thu 13. Dec 2012 9:13:13


Return to Nevím jak...

Who is online

Users browsing this forum: No registered users and 7 guests