Promotic

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".
Syntaxe:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oCreator = Pm.CreateView(null, "/#glob/list", sViewPars, sFramePars);
oCreator.Open();
Parametry prohlížeče:
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:
- objekt PmaPanel, pokud se metoda CreateView volá ve skriptu Pmg objektu.
- aktivní PmaWorkspace, pokud se metoda CreateView volá ve skriptu Pma objektu.
- 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čů)
Údaje jsou zde ve formátu KeyVal, například "název1:hodnota1;název2:hodnota2;".
Viz vlastnost PmViewCreator.View.

Parametry prohlížeče:
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 má první řádek 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č
Údaje jsou zde ve formátu KeyVal, například "target:_blank;".
Viz vlastnost PmViewCreator.Frame.
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 arr = Pm.CreatePmArray().Create(2,3);
arr.SetItem("id1", 0, 0);
arr.SetItem("Test 1", 1, 0);
arr.SetItem("id2", 0, 1);
arr.SetItem("Test 2", 1, 1);
arr.SetItem("id3", 0, 2);
arr.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:Selection;", "target:_blank;modal:1;pos:view," + pMe.ViewX + "," + pMe.ViewY + ";");
oCreator.View.list = arr;
oCreator.View.initValue = "id2";
oCreator.View.onClose = onViewClose;
oCreator.Open();
Příklad2:
Výběr ze seznamu obrazů. Metoda Pm.FindViewers vrací pole výběru.
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:Selection;", "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();

Historie:
Pm9.00.10: Nové parametry ev.ReturnIndex a ev.Index.
Pm9.00.09: Vytvořeno
© MICROSYS, spol. s r.o.