Update cookies preferences
Promotic

Otevření prohlížeče

Některé Pma objekty mají prohlížeč svých obsahů. Tato kapitola popisuje jak lze ve spuštěné aplikaci (v runtime) tyto prohlížeče otevřít.
Pokyny zde uvedené jsou pro metodu OpenView, která je již zastaralá (ale funkční) a pro otevírání prohlížečů je lepší použít metodu Pm.CreateView.

Objekty, které obsahují prohlížeč svého obsahu:
- PmaPanel: prohlížeč obrazu
- PmaReport: prohlížeč dynamicky generovaného HTML reportu
- PmaWorkspace: prohlížeč pracovní plochy
- PmaAlarmGroup: prohlížeč stavů a historie alarmů
- PmaEventGroup: prohlížeč historie eventů
- PmaWeb: zobrazení Web stránek nabízených tímto objektem
- PmaWebDir: zobrazení Web stránek nabízených tímto objektem
- PmaWebFolder: zobrazení Web stránek nabízených tímto objektem
- PmaWebLang: zobrazení Web stránek nabízených tímto objektem


Globální komponenty, které obsahují prohlížeč svého obsahu:
- prohlížeč objektu PmForm (cesta: "/#glob/form")
- prohlížeč Web stránek (cesta: "/#glob/webbrowser")
- prohlížeč pro INFO systém (cesta: "/#glob/infosystem")


Způsoby otevření prohlížeče objektu:
 
1) Staticky, konfiguračně:
a) v objektu PmaWorkspace (viz konfigurátor "Prohlížeč komponenty" a konfigurátor "Výchozí hodnota Params"). Tímto způsobem lze zajistit automatické počáteční zobrazení libovolných prohlížečů po spuštění aplikace v jednotlivých rámech objektu PmaWorkspace.
b) v objektu PmgFrame (viz konfigurátor "Prohlížeč"). Tímto způsobem lze otevřít libovolný prohlížeč v objektu PmgFrame při jeho otevření.
 
2) Dynamicky ve skriptu pomocí metod OpenView:
Sada těchto metod umožňuje otevřít libovolný prohlížeč v rámu objektu PmaWorkspace, v objektu PmgFrame nebo také jako samostatné okno. Metoda je z důvodu praktičnosti implementována do několika objektů:
Metoda je asynchronní, tzn. metoda pouze aktivuje otevření příslušného prohlížeče (případně zavření předcházejího) ale po ukončení metody ještě nemusí být prohlížeč skutečně otevřen.


Zobrazení prohlížeče libovolného objektu se provádí jednotným způsobem. Obecně je potřeba následujících čtyř údajů (parametrů):

sObjectPath

(String) Cesta (relativní nebo absolutní) k objektu nebo komponentě, jehož prohlížeč má být otevřena.

Může být zde cesta k objektům: PmaPanel, PmaReport, PmaAlarmGroup, PmaWorkspace, PmaWeb, PmaWebFolder, PmaWebDir, PmaWebInfo, PmaWebLang.
Objekt PmaAlarmGroup: Tento objekt nabízí dva prohlížeče (stavu a historie), proto zde lze připojit za vlastní cestu k objektu text /#state pro prohlížeč stavů alarmů nebo text /#history pro prohlížeč historie. Pokud není prohlížeč explicitně uvedena, pak pro alarmy se zobrazí prohlížeč stavů alarmů, zatímco pro eventy se zobrazí prohlížeč historie eventů.


nebo zde může být cesta ke globálním komponentám:
"/#glob/form": Otevření formuláře PmForm, pomocí kterého lze dynamicky (tzn. pomocí skriptu) vytvářet objekty, které jsou určeny pro zobrazování a zadávání údajů. V tom případě se musí také nastavit hodnota oExtra.ViewObject na vytvořený objekt PmForm. Viz Příklad: V objektu PmgForm vytvoří položky pro zadání údajů.
"/#glob/webbrowser": Obecný Web prohlížeč HTML stránek (na Webu nebo na disku).
Ve spuštěné aplikaci se otevře Web prohlížeč, který využívá InternetExplorer.
Viz Příklad otevření Web prohlížeče.
"/#glob/infosystem": Prohlížeč pro INFO systém. Viz Příklad a viz Jak otevřít INFO systém.

sOptions

(String) Parametry předávané vlastnímu prohlížeči. Určují kde a jak má být prohlížeč zobrazen.
Údaje jsou zde ve formátu KeyVal, například "target:_blank;modal:1;".

Pro prohlížeče objektů PmaPanel a PmaReport: Statické výchozí hodnoty sOptions lze nastavit v konfigurátoru "PmaPanel > Obraz > Výchozí hodnota sFramePars" nebo v konfigurátoru "PmaReport > Report > Výchozí hodnota sFramePars".
V tom případě dochází ke zkombinování údajů ze statického výchozího nastavení objektu s údaji předanými dynamicky. Pokud je stejný údaj uveden na obou místech, pak přednost dostane dynamický údaj, dodaný při otevření prohlížeče.

target:xx; - Určuje, v kterém rámu se prohlížeč otevře.
Pokud není nastaveno, pak se přednastaví následovně:
- pokud se okno otevírá jako modální (je nastaveno "modal:1;"), pak se nastaví na "_blank".
- pokud se otevírá z objektu PmaPanel, pak se nastaví na "_self".
- pokud se otevírá z objektu PmaWorkspace, pak se nastaví na identifikátor hlavního rámu pracovní plochy (zadaný v konfigurátoru "Implicitní rám (default frame)").
- pokud se otevírá z objektu PmgFrame, pak se prohlížeč zobrazí v objektu PmgFrame).
frameid - Nový prohlížeč se otevře v objektu PmaWorkspace v rámu s identifikátorem frameid.
_blank - Nový prohlížeč se otevře v novém okně.
_blank.blankid - Identifikátor samostatného nebo modálního okna.
Pokud okno s identifikátorem blankid již existuje, pak se nový prohlížeč otevře ve stávajícím okně, v jiném případě se otevře v novém okně.
 
Význam identifikátoru:
- Zabrání otevírání velkého množství oken se stejným identifikátorem.
- Umožňuje se na toto okno odkázat, například:
- metoda Pm.WndOper(0, "_blank.xy", 10) zavře okno s identifikátorem xy.
 
Je to systémový název, může obsahovat pouze alfanumerické znaky a nesmí obsahovat diakritiku (tzn. národnostně závislé znaky), mezery a první znak nesmí být číslo.
_self - Nový prohlížeč se otevře ve stávajícím okně (v rámu) a prohlížeč, nad kterým byla metoda volána, se zavře.
scrollbar:nn; - Určuje, zda okno bude zobrazovat se scrollbary (s posuvnými lištami) a umožňuje posouvání obsahu, pokud velikost obrazu je větší než velikost okna, ve kterém je obraz zobrazován.
0 - Scrollbary nebudou nikdy zobrazeny a okno neumožní posouvání obrazu.
Je to například vhodné pro okno typu "nástrojová lišta, kdy okno má být úzké a scrollbary by vadily.
1 (přednastaveno) - Okno zobrazí scrollbary a umožňuje posun obrazu, pokud bude velikost obrazu je větší než velikost okna, ve kterém je obraz zobrazován.
refresh:xx; - Pouze pro otevření prohlížeče objektu PmaPanel. Určuje, zda obraz bude mít automatické obnovování podle globálně nastavené systémové periody nebo bude mít vlastní obnovování. Zatím není funkční při otevření Web obrazu.
0 - Obraz bude mít vlastní obnovování, tzn. bude se volat metoda PmaPanel.Refresh.
system (přednastaveno) - Obraz bude mít automatické obnovování podle globálně nastavené systémové periody (viz konfigurátor "PmaRoot > Aplikace > Perioda časovače obrazů").


Následující údaje mají smysl pouze při otevírání v novém okně (tzn. s nastavením "target:_blank;"):

modal:nn; - Určuje, zda okno bude modální.
0 (přednastaveno) - Okno nebude modální.
1 - Okno bude modální.
dependent:nn; - Určuje, zda okno bude závislé na hlavním okně aplikace.
0 - Okno bude nezávislé na hlavním okně aplikace.
1 (přednastaveno) - Okno bude závislé na hlavním okně aplikace a bude vždy nad aplikací.
caption:nn; - Určuje, zda okno bude obsahovat záhlaví okna (tzn. s modrou lištou nahoře).
0 - Okno bude bez záhlaví. Zatím není funkční při otevření Web obrazu.
1 (přednastaveno) - Okno bude se záhlavím.
ontop:nn; - Určuje, zda okno bude "Vždy nahoře".
0 (přednastaveno) - Okno nebude "Vždy nahoře".
1 - Okno bude "Vždy nahoře". Zatím není funkční při otevření Web obrazu.
state:xx; - Určuje počáteční stav okna.
normal (přednastaveno) - Okno bude zobrazeno normálně (nebude maximalizované ani minimalizované).
max - Okno bude zobrazeno maximalizované. Zatím není funkční při otevření Web obrazu.
pos:xx; - Určuje počáteční pozici okna v normálním stavu.
Tato pozice je jen doporučená. Pokud velikost okna nevejde na obrazovku, pak se tato pozice posune tak, aby byla viditelná co největší část tohoto okna.
top,center (přednastaveno) - Okno bude zobrazeno ve středu aktivního okna aplikace (pracovní plochy).
top,x,y - Okno bude mít levý horní roh na souřadnicích x a y (v pixelech) relativně k aktivnímu oknu aplikace (pracovní plochy).
frame,center - Okno bude zobrazeno ve středu okna, ze kterého je nové okno otevíráno.
view,x,y - Okno bude mít levý horní roh na souřadnicích x a y (v pixelech) relativně k obsahu okna, ze kterého je nové okno otevíráno.
Pozice se zde stanovuje relativně k obsahu okna (view) a ne k oknu samotnému (frame). Lze tak například nové okno umístit vedle Pmg objektu, ze kterého je okno otevíráno. Viz Příklad pro otevření obrazu s umístěním podle Pmg objektu.
screen,x,y - Okno bude mít levý horní roh na souřadnicích x a y (v pixelech) v absolutním souřadném systému Windows. Tato volba není funkční na Webu. Slouží k umístění hlavních oken aplikace (PmaWorkspace nebo PmaPanel) na jednotlivé monitory. Ostatní okna aplikace se již obvykle umísťují relativně k těmto hlavním oknům.
size:xx; - Určuje počáteční velikost okna v normálním stavu.
content (přednastaveno) - Okno bude mít takovou velikost aby se tam vešel celý otevíraný obraz (tzn. aby nevznikly scrollbary).
Šířka a výška obrazu se zadává v editoru grafiky v objektu PmgRoot v kartě "Obraz".
Stejný význam jako hodnota content má zastaralá (ale funkční) hodnota panel.
dx,dy - Okno bude mít velikost podle zadaných hodnot dx a dy (v pixelech). Tyto hodnoty definují vnější velikost okna (tzn. včetně okrajů a záhlaví okna).
fixed:xx,yy,..; - Umožňuje zakázat změnu stavu, pozice nebo velikosti obrazu. Má podobu výčtu jednotlivých zákazů oddělených znakem "čárka" (,). Zatím není funkční při otevření Web obrazu. Výchozí hodnota je: Vše je povoleno.
state - Zakáže měnit stav okna (normální / maximalizovaný / minimalizovaný).
pos - Zakáže měnit pozici okna v normálním stavu.
size - Zakáže měnit velikost okna v normálním stavu.
size2 - Omezuje změnu velikosti okna v normálním stavu - okno nemůže být větší než vlastní velikost obrazu.

sParams

(String) Data předávané objektu, který bude zobrazován prohlížečem.
Údaje jsou zde ve formátu KeyVal, například "název1:hodnota1;název2:hodnota2;".
Tyto data obvykle parametrizují nebo filtrují vlastní obsah objektu pro zobrazení a závisí na typu otevíraného objektu.

PmaPanel: Umožňuje nastavit hodnotu parametrů objektu PmgRoot.
Tento parametr je pak přístupný v konfigurátorech obrazu pomocí Makro výraz $.par a ve skriptu metodou GetPar.
Každý jednotlivý parametr je zde tvořen identifikátorem (název) a hodnotou.
Syntaxe: "pars:{name1:value1;name2:value2; ...}".
Viz také: Parametry Pmg objektu.
Statické výchozí hodnoty parametrů sParams lze nastavit v konfigurátoru "PmaPanel > Obraz > Výchozí hodnota sViewPars". V tom případě dochází ke zkombinování údajů ze statického výchozího nastavení objektu s údaji předanými dynamicky. Pokud je stejný údaj uveden na obou místech, pak přednost dostane dynamický údaj, dodaný při otevření prohlížeče.


PmaReport: Umožňuje nastavit hodnotu parametrů reportu. Tyto parametry jsou pak přístupné v parametru pEvent.Pars události onReportRequest.
Každý jednotlivý parametr je tvořen identifikátorem a hodnotou.
Syntaxe: "pars:{name1:value1;name2:value2; ...}".
Statické výchozí hodnoty parametrů sViewPars lze nastavit v konfigurátoru "PmaReport > Report > Výchozí hodnota sViewPars". V tom případě dochází ke zkombinování údajů ze statického výchozího nastavení objektu s údaji předanými dynamicky. Pokud je stejný údaj uveden na obou místech, pak přednost dostane dynamický údaj, dodaný při otevření prohlížeče.


PmaWorkspace: Nepoužívá se.


PmaWebDir: "file:xx;" = Soubor s příponou (např. file:MyPage.htm), který se má zobrazit. Tento soubor musí být umístěn ve složce, který objekt PmaWebDir do Webu nabízí (viz konfigurátor "Složka se soubory").
Pokud soubor je v podsložce, pak parametr file se musí zadat v podobě "podsložka/soubor".
Pokud parametr file není uveden, pak se otevře soubor default.htm a pokud takový soubor neexistuje, pak se otevře dynamicky vytvořená HTML stránka se seznamem souborů.


"/#glob/webbrowser": Umožňuje nastavit adresu HTML stránky, která se má zobrazit. Syntaxe: "url:https://www.promotic.eu;".
Adresu je nutno uvádět v plném tvaru včetně protokolu: (http://, https:// nebo file://).


"/#glob/form": Nepoužívá se.
"/#glob/infosystem": Nepoužívá se.


PmaAlarmGroup, PmaEventGroup: Umožňuje nastavit buď pouze filtrační řetězec nebo komplexní parametry obrazu zaregistrovaného prohlížeče alarmů/eventů (včetně filtračního řetězce). Viz Prohlížení alarmů/eventů nebo Filtrační řetězec.

oExtra

(Object) Dodatečné údaje pro prohlížeč. Data se zde definují vytvářením vlastností v objektu PmMap (na rozdíl od předchozích parametrů sOptions a sParams kde se údaje zadávají textově) - lze tak předávat hodnoty obecnější než pouze textové.
Objekt se vytvoří metodou Pm.CreatePmMap.

Příklad vytvoření, naplnění a použití objektu oExtra:
JavaScriptVyber a zkopíruj do schránky

var oExtra = Pm.CreatePmMap();
oExtra.Arguments = 3.14;
oExtra.onClose = Pm.CreatePmAction(1, pMe, "ClosePanel");
pMe.PmPanel.OpenView("/Kotel/Panel", "target:_blank;", "", oExtra);


Seznam vlastností, které lze vytvořit v objektu:
oExtra.Arguments (nepovinné) - (Variant) Hodnota předávaná otevíranému prohlížeči. Tato hodnota je pak dostupná:
- v události oExtra.onOpen (viz dále).
- v objektu PmaPanel pomocí vlastnosti PmgRoot.Arguments.

Tato hodnota může být jednoduchá (Integer, String, ...), pole nebo objekt typu PmArray nebo PmMap (nedoporučuje se zde předávat jiné typy objektů).
Zadání této hodnoty je často důležité například při otevírání modálního okna, které má sloužit pro editaci údajů.
Vlastnost Arguments pak slouží jako vstupní inicializační hodnota (vlastnost ReturnValue jako výstupní upravená hodnota) - viz Jak pracovat s modálními okny.
oExtra.ViewObject (nepovinné) - (Variant) Prohlížený objekt PmForm.
Při prohlížení objektu PmForm (tzn. pokud je zadáno sObjectPath="/#glob/form") pak tato hodnota se nastaví na dynamicky vytvořený a nakonfigurovaný objekt PmForm. Viz Příklad: V objektu PmgForm vytvoří položky pro zadání údajů.
Pro jiné typy prohlížečů tato hodnota nemá využití.
oExtra.onClose (nepovinné) - (objekt typu PmAction) Zadává se zde metoda projektanta, která se volá, když se obraz zavře.
Objekt pro tuto vlastnost se vytvoří metodou Pm.CreatePmAction.
Tato metoda projektanta musí mít dva parametry:
- oSystem: Objekt typu PmMap. Vlastnosti tohoto objektu nastavuje systém podle toho odkud tuto akci volá. V tom případě systém nastaví vlastnosti:
- oSystem.CloseReason: (String) Identifikátor typu zavření okna.
- Při prohlížení objektu PmaPanel se zadává při zavírání obrazu metodou PmgRoot.Close(sReason).
- Při prohlížení objektu PmForm hodnota identifikátoru zavisí na tom, jakým tlačítkem byl prohlížeč ukončen. Viz PmForm.SysButtons a PmForm.Close.
- Při prohlížení jiných objektů se tato vlastnost nenastavuje.
- oSystem.ReturnValue: (Variant) Výstupní hodnota prohlížeče.
- Při prohlížení objektu PmaPanel lze tuto hodnotu nastavit pomocí vlastnosti PmgRoot.ReturnValue.
- Při prohlížení jiných objektů se tato vlastnost nenastavuje.
- oSystem.ViewObject: (Object) Prohlížený objekt PmForm.
- Při prohlížení jiných objektů se tato vlastnost nenastavuje.
- oPrivate: Objekt typu PmMap. Vlastnosti tohoto objektu nastavuje projektant v objektu PmAction.PrivateData. Projektant v tomto objektu nemusí nastavit žádnou vlastnost. Nastavením nějaké vlastnosti lze však dosáhnout například toho, že jedna metoda projektanta může sloužit více účelům a pouze podle hodnoty vlastnosti v PrivateData se v této metodě rozpozná, odkud se metoda volá.
oExtra.onOpen (nepovinné) - (objekt typu PmAction) Zadává se zde metoda projektanta, která se vyvolá, když se obraz otevře (tzn. pokud je obraz již skutečně zobrazen a jsou v něm vytvořeny všechny grafické objekty).
Objekt pro tuto vlastnost se vytvoří metodou Pm.CreatePmAction.
Tato metoda projektanta musí mít dva parametry:
- oSystem: Objekt typu PmMap. Vlastnosti tohoto objektu nastavuje systém podle toho odkud tuto akci volá. V tom případě systém nastaví vlastnosti:
- oSystem.Arguments: (Variant) Vstupní hodnota prohlížeče, kterou při otevírání metodou OpenView lze zadat v údaji oExtra.Arguments.
- oSystem.ViewObject: (Object) Prohlížený objekt PmForm. Při prohlížení jiných objektů se tato vlastnost nenastavuje.
- oPrivate: Objekt typu PmMap. Vlastnosti tohoto objektu nastavuje projektant v objektu PmAction.PrivateData. Projektant v tomto objektu nemusí nastavit žádnou vlastnost. Nastavením nějaké vlastnosti lze však dosáhnout například toho, že jedna metoda projektanta může sloužit více účelům a pouze podle hodnoty vlastnosti v PrivateData se v této metodě rozpozná, odkud se metoda volá.
oExtra.onChange (nepovinné) - (objekt typu PmAction) Zadává se zde metoda projektanta, která se volá, pokud se v zobrazovaném objektu změní některá položka.
Objekt pro tuto vlastnost se vytvoří metodou Pm.CreatePmAction.
Toto je funkční pouze pokud zobrazovaný objekt je PmForm.
Tato metoda projektanta musí mít dva parametry:
- oSystem: Objekt typu PmMap. Vlastnosti tohoto objektu nastavuje systém podle toho odkud tuto akci volá. V tom případě systém nastaví vlastnosti:
- oSystem.ViewObject: (Object) Prohlížený objekt PmForm.
- oSystem.ItemId: (String) Typ Pmf objektu (zadává se při vytváření objektu metodou PmForm.CreateItem).
- oSystem.ChangeType: (String) Identifikátor typu změny:
- "value": Změnila se hodnota některého objektu.
- "push": Některá položka byla stištěna. Je funkční pouze pro objekt PmfButton.
- oSystem.NewValue: (Variant) Hodnota položky po změně. Tato vlastnost je nastavená pouze pokud ChangeType="value".
- oSystem.OldValue: (Variant) Hodnota položky před změnou. Tato vlastnost je nastavená pouze pokud ChangeType="value".
- oPrivate: Objekt typu PmMap. Vlastnosti tohoto objektu nastavuje projektant v objektu PmAction.PrivateData. Projektant v tomto objektu nemusí nastavit žádnou vlastnost. Nastavením nějaké vlastnosti lze však dosáhnout například toho, že jedna metoda projektanta může sloužit více účelům a pouze podle hodnoty vlastnosti v PrivateData se v této metodě rozpozná, odkud se metoda volá.

Historie:
Pm8.03.11: Zobecnění: v údaji oExtra.onOpen lze nastavit metodu, která se bude volat až se obraz skutečně otevře.
Pm8.03.06: Velmi zobecněno otevírání obrazů pomocí metod OpenView:
- Do metod OpenView přidán čtvrtý nepovinný parametr oExtra, který umožňuje při otevírání zadat vlastnosti:
- oExtra.Arguments (objekt typu PmMap): Hodnota, která se předá otevíranému obrazu bude v obrazu dostupná pomocí vlastnosti PmgRoot.Arguments.
- oExtra.onClose (objekt typu PmAction): Zde lze definovat metoda projektanta, která se bude volat při zavření tohoto otevíraného obrazu.
- Tímto zobecněním se mění i tvorba modálních oken - tzn. oken, které zablokují přístup k jiným oknům po dobu zadávání údajů.
Metoda OpenViewModal se nyní považuje za zastaralou - tato metoda je totiž "synchronní", tzn. při zavolání čeká skript na ukončení tohoto okna a teprve pak pokračuje dále. Tento přístup však není funkční v mnoha Web prohlížečích a z hlediska běhu skriptu je nekoncepční.
Nový typ otevírání modálního okna metodou OpenView (s nastaveným údajem modal:1;) otevře okno modálně ale skript pokračuje dál. Až je modální okno zavřeno, zavolá se metoda projektanta, která byla zadána v údaji oExtra.onClose
Viz Jak pracovat s modálními okny.
Takto otevřená modální okna již jsou funkční ve všech Web prohlížečích.
Pm8.03.05: Nevyhodnocovala se správně velikost a pozice obrazu otevřeného v samostatném okně (tzn. pokud byl "target:_blank;").
Navigace:
 
 
- OpenView
 
 
- SVG
© MICROSYS, spol. s r.o.