Otevření prohlížeče pro výběr volby z nabídky (/#glob/list)
Okno pro výběr volby z nabídky se otevírá metodou
Pm.CreateView. V parametru
sViewPath se zadá globální cesta
"/#glob/list".
oFrom | (Object) Objekt, který zprostředkuje otevření prohlížeče.
Objekt určuje odkud hledat cestu, vůči komu pozicovat okno, kdo bude rodičem, atd.
- Hodnota null znamená, že se použije:
- Pokud zde zadáme objekt PmgFrame (ve skriptu Pmg objektu), pak se prohlížeč otevře v tomto rámu.
- Pokud zde zadáme objekt PmaPanel (ve skriptu Pma objektu), pak se prohlížeč otevře v tomto zvoleném objektu.
Viz vlastnost PmViewCreator.From. |
sViewPars | (String) Parametry prohlížeče (liší se u jednotlivých typů prohlížečů).
Viz vlastnost PmViewCreator.View.
Údaje jsou zde ve formátu KeyVal. Například "autoselect:0;grid:1;title:Výběr;".
initValue | [nepovinné] (String) Počáteční výběr (Identifikátor). |
list | (Array) 2-rozměrné pole s volbami, kde řádky představují jednotlivé volby a sloupce představují položky volby. Viz (Col,Row) - 2-rozměrné pole s významem pole řádků.
První sloupec (indexováno od 0) není nabídkou zobrazen (je neviditelný) a obsahuje identifikátory jednotlivých voleb. Další sloupce jsou již v nabídce zobrazeny. Nabídka je zobrazena v tabulkové podobě a má o jeden sloupec méně, než dodané 2-rozměrné pole.
První řádek může (ale nemusí) obsahovat záhlaví s nadpisy sloupců (lokalizované uživatelské názvy) v nabídce. Pokud první řádek má obsahovat záhlaví, pak v prvním sloupci (neviditelný, vyhrazený pro identifikátory) musí být uveden řetězec s hodnotou $title. |
autoselect | [nepovinné] (Long) (Long) Umožňuje režim, kdy se nečeká na výběr uživatelem v těch případech, kdy to není nutné. Nedojde tak ani k zobrazení okna.
0 (přednastaveno) - okno bude zobrazeno vždy.
1 - Okno bude zobrazeno pouze pokud jsou k zobrazení alespoň dvě volby.
Pokud je k dispozici pouze jediná volba, pak je tato automaticky zvolena a metoda vrací hodnotu typu String (identifikátor vybrané volby).
Pokud není k dispozici žádná volba, pak metoda vrací: null pro JavaScript nebo Empty pro VBScript (lze testovat metodou Pm.IsValid). |
grid | [nepovinné] (Long) Určuje, zda buňky zobrazené tabulky budou s ohraničením.
0 (přednastaveno) - nebudou s ohraničením.
1 - budou s ohraničením. |
title | [nepovinné] (String) Záhlaví okna, pokud je okno se záhlavím vůbec zobrazeno (pro target:_blank;) |
onChange | [nepovinné] (Function) Událostní funkce pro obsloužení události změny v prohlížeči.
Pro JavaScript se zde zadává function.
Pro VBScript se zde zadává objekt PmAction.
Funkce má jeden parametr ev obsahující informace o dané události.
ev.Value - (String) Právě vybraná volba (Identifikátor).
ev.Index - ( Long) Index právě vybrané volby v originálním nesetříděném poli. |
onClose | [nepovinné] (Function) Událostní funkce pro obsloužení události zavření prohlížeče.
Pro JavaScript se zde zadává function.
Pro VBScript se zde zadává objekt PmAction.
Funkce má jeden parametr ev obsahující informace o dané události.
ev.CloseReason - (String) Identifikátor typu zavření okna.
Hodnota "ok" znamená platný výběr.
Hodnota "cancel" nebo "" znamenají zrušený výběr.
ev.ReturnValue - ( String) Výsledná vybraná volba (Identifikátor).
ev.ReturnIndex - ( Long) Index výsledné vybrané volby v originálním nesetříděném poli. |
---|
|
sFramePars | (String) Parametry pro rám (frame), ve kterém bude zobrazen prohlížeč.
Viz vlastnost PmViewCreator.Frame.
Údaje jsou zde ve formátu KeyVal, například "target:_blank;". |
---|
Parametry prohlížeče jsou v podobě objektu
PmMap, který je naplněn z hodnoty parametru
sViewPars (typu
KeyVal) v metodě
Pm.CreateView.
Naplněním z
KeyVal hodnoty jsou všechny parametry na počátku uložené jako řetězec. Obsah objektu
PmMap však může být libovolně měněn - položky lze přidávat, mazat nebo měnit jejich hodnotu.
Objekt
PmMap může obsahovat jiné vnořené objekty
PmMap. Ke zpřístupnění existující nebo založení nové položky typu
PmMap lze použít metodu
PmMap.mapSetSubmapAt.
Příklad1:
Výběr z pole hodnot
JavaScriptVyber a zkopíruj do schránky
var aList = Pm.CreatePmArray().Create(2,3);
aList.SetItem("id1", 0, 0);
aList.SetItem("Test 1", 1, 0);
aList.SetItem("id2", 0, 1);
aList.SetItem("Test 2", 1, 1);
aList.SetItem("id3", 0, 2);
aList.SetItem("Test 3", 1, 2);
function onViewClose(ev)
{
if (ev.CloseReason == "ok")
{
switch (ev.ReturnValue)
{
case "id1":
Pm.Debug("Run test 1");
break;
case "id2":
Pm.Debug("Run test 2");
break;
case "id3":
Pm.Debug("Run test 3");
break;
}
}
}
var oCreator = Pm.CreateView(null, "/#glob/list", "autoselect:0;grid:1;title:Výběr;", "target:_blank;modal:1;pos:view," + pMe.ViewX + "," + pMe.ViewY + ";");
oCreator.View.list = aList;
oCreator.View.initValue = "id2";
oCreator.View.onClose = onViewClose;
oCreator.Open();
Příklad2:
JavaScriptVyber a zkopíruj do schránky
function onViewClose(ev)
{
if (ev.CloseReason == "ok")
{
var sViewer = ev.ReturnValue;
if (Pm.IsValid(sViewer))
{
Pm.CreateView(null, sViewer, "", "target:main;").Open();
}
}
}
var oCreator = Pm.CreateView(null, "/#glob/list", "autoselect:0;grid:1;title:Výběr;", "target:_blank;modal:1;pos:view," + pMe.ViewX + "," + pMe.ViewY + ";");
oCreator.View.list = Pm.FindViewers("groups:menu;viewers:panel;\",\"\", \"headers:;columns:path,title;");
oCreator.View.onClose = onViewClose;
oCreator.Open();