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) - Buňky nebudou s ohraničením.
1 - Buňky budou s ohraničením. |
| title | [nepovinné] (String) Záhlaví okna, pokud je okno se záhlavím vůbec zobrazeno (pro target:_blank;) |
| multiselect | [nepovinné] (Long) Povolí nebo zakáže vícenásobný výběr voleb.
Pokud je vícenásobný výběr povolen, pak se zobrazí v levé části tabulky sloupec se zaškrtávacími políčky. Zatržením zaškrtávacích políček na jednotlivých řádcích přidáme volby do vícenásobného výběru, nebo zrušením zatržení je z vícenásobného výběru odebereme.
Pokud má tabulka záhlaví, pak se zobrazí v levém sloupci záhlaví zaškrtávací políčko, pomocí kterého lze vybrat nebo zrušit výběr všech voleb najednou.
Pokud je vícenásobný výběr povolen, pak parametr ev.ReturnValue obsahuje pole PmArray identifikátorů jednotlivých vybraných voleb a parametr ev.ReturnIndex obsahuje pole PmArray indexů jednotlivých vybraných voleb v originálním nesetříděném poli.
0 (přednastaveno) - Vícenásobný výběr je zakázán.
1 - Vícenásobný výběr je povolen. |
| filterEnable | [nepovinné] (Long) Povolí nebo zakáže filtraci řádků tabulky.
Pokud je filtrace povolena, pak se zobrazí v levém horním rohu okna tlačítko "Filtr". Po jeho stisknutí se otevře okno pro zadání hledaného textu.
Pokud hledaný text není prázdný, pak zobrazí se pouze ty řádky tabulky, ve kterých byl zadaný text nalezen. Ostatní řádky tabulky budou skryté. Zároveň se hledaný text zobrazí vpravo vedle tlačítka "Filtr".
Pokud hledaný text je prázdný, pak se zobrazí všechny řádky tabulky.
0 (přednastaveno) - Filtrace řádků tabulky je zakázána. Tlačítko "Filtr" nebude zobrazeno.
n - Filtrace řádků tabulky je povolena, pokud počet řádků tabulky je větší nebo roven "n". Tedy např. zadaná hodnota 10 znamená, že se tlačítko "Filtr" zobrazí, pokud bude mít tabulka alespoň 10 řádků. |
| filterCol | [nepovinné] (Variant) Určuje, ve kterých sloupcích tabulky se bude při filtraci řádků hledat zadaný text.
all (přednastaveno) - Zadaný text se bude hledat ve všech sloupcích tabulky.
n - Zadaný text se bude hledat pouze ve sloupci s indexem "n". |
| 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 - Identifikátor ( String) výsledné vybrané volby, nebo pole PmArray identifikátorů jednotlivých vybraných voleb, pokud je v tabulce povolen vícenásobný výběr.
ev.ReturnIndex - Index výsledné vybrané volby v originálním nesetříděném poli, nebo pole PmArray indexů jednotlivých vybraných voleb, pokud je v tabulce povolen vícenásobný výběr. |
|---|
|
| 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();