Volání metody tlačítkem (WEB Server)

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

Volání metody tlačítkem (WEB Server)

Postby Jarmil » Mon 27. Nov 2023 15:41:14

Dobrý den,
potřebuji volat z web serveru metodu, avšak když jsem metodu volal v události OnButtonUp nebo podobné tak neproběhla, zkoušel jsem tam hodit jen debug ale také bez odezvi... Nevíte čím by mohlo být, jestli jsem nepřehlédl nějaký detail v nastavení?
Jarmil
 
Posts: 2
Joined: Mon 16. Oct 2023 10:11:04

Re: Volání metody tlačítkem (WEB Server)

Postby Pavel Klimíček » Wed 29. Nov 2023 14:30:18

Dobrý den.
Nenapsal jste jakou verzi Promotic používáte.
Pokusím se tedy odpovědět obecně.

Aby Promotic obrazy fungovaly na webu musí být obrazy nastaveny pro "Javascript" a zpřístupněny do webu.
Pak skript pro debug v události "onButtonUp" by byl (musí se dodržovat velká a malá pismena příkazu):
Code: Select all
Pm.Debug("Pustení tlacitka");


Z grafických objektů nelze přistupovat přímo skriptem na objekty ležící na serveru (všechny objekty v aplikaci - typicky proměnné v objektu PmaData)
Nicméně pokud z obrazu (webového) potřebujete změnit hodnotu v proměnné PmaData (na serveru), pak máte 2 možnosti.
1) Použít vazbu PP, když například pomocí dvoustavového tlačítka chcete změnit hodnotu (bool) proměnné na true nabo false. Nebo i jiné vazby.
2) Vytvořit a použít svou uživatelskou metodu s parametry, kterou z tlačítka v události "onButtonUp" zavoláte a ta se o změnu hodnoty postará.

Add 2) postup platný pro verzi Promotic9:
a) Vytvoření uživatelské metody:
- V aplikaci označte obraz ve kterém bude tlačítko.
- Přejděte vpravo a v kartě "Metody" stiskněte tlačítko +.
- Ve vyvolaném dialogu zadejte jméno metody například "ChangeValue" a zadejte ji 2 parametry: name, val.
A dialog potvrďte.
- Metoda se založí a vpravo ve skriptové části vytvořte tento skript:
Code: Select all
pMe.Pm("/Data/#vars/" + name).Value = val;

To platí, pokud jsou i aplikační skripty v jazyku javascript.
Pro VBScript bude platný tento zápis:
Code: Select all
pMe.Pm("/Data/#vars/" & name).Value = val

V uvozovkách je cesta k požadovanému objektu PmaData a v parametru "name" příjde z tlačítka "jméno proměnné" a v parametru "val" jeho nová hodnota.
b) Skript v tačítku:
- V události "onButtonUp" tlačítka v obraze pak zavoláte metodu takto:
Code: Select all
pMe.PmPanel.Methods.ChangeValue("d2", 365);

Kde v prvním parametru bude "jméno proměnné" a v druhém bude požadovaná hodnota.

Tuto metodu pak můžete použít i v jiných grafických objektech v obraze ke změně hodnot jiných proměnných v objektu PmaData.
Pavel Klimíček
 
Posts: 73
Joined: Thu 13. Dec 2012 15:35:59


Return to Nevím jak...

Who is online

Users browsing this forum: No registered users and 6 guests