mají prohlížeč svých obsahů. Tato kapitola popisuje jak lze ve spuštěné aplikaci (v runtime) tyto prohlížeče otevřít.
Zobrazení prohlížeče libovolného objektu se provádí jednotným způsobem. Obecně
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
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í. Prozatí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.
Následující údaje mají smysl pouze
při otevření 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í. Prozatí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". Prozatí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é. Prozatí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" (
,). Prozatí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.
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.
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:
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).
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ření 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.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í jiných objektů se tato vlastnost nenastavuje.
-
oSystem.ReturnValue: (
Variant) Výstupní hodnota prohlížeče.
- 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ření 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á.