Update cookies preferences
Promotic

Otevření prohlížeče pro výběr souboru/složky (/#glob/filepath)

Okno pro výběr souboru/složky se otevírá metodou Pm.CreateView. V parametru sViewPath se zadá globální cesta "/#glob/filepath".
Tento prohlížeč není funkční ve Web obrazech.
Syntaxe:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oCreator = Pm.CreateView(oFrom, "/#glob/filepath", sViewPars, sFramePars);
oCreator.Open();
Parametry metody Pm.CreateView:
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čů).
Viz vlastnost PmViewCreator.View.
Údaje jsou zde ve formátu KeyVal. Například "title:App files;initValue:#app:MyApp.log;mode:1;hide:1;defaultExt:ini;".

Vlastnosti a události v objektu PmViewCreator.View:
initValue[nepovinné] (String) Počáteční výběr souboru/složky, nejlépe v notaci PROMOTIC cesta k souborům nebo složkám.
mode[nepovinné] (Long) (Long) Mód výběru. Určuje, zda výsledkem bude cesta k souboru nebo složce.
1 (přednastaveno) - Výběr souboru.
2 - Výběr složky.
roots[nepovinné] (PmMap) Seznam nabídky počátků výběrů (root) (logických složek, fyzických disků, …) v podobě vnořené mapy (Submap). Pro snadné vytvoření/nastavení vnořené mapy (Submap) v položce jiné mapy, lze použít metodu PmMap.mapSetSubmapAt. Tato metoda zajistí, že v dané položce bude vnořená mapa a do této mapy navíc umí hromadně přidat položky z řetězce ve formátu KeyVal.
 
Každý počátek výběru (root) je tvořen dvojicí hodnot: popis (titleN) a hodnota (valueN), kde N je index (indexováno od 0). Popisy (titleN) jsou nepovinné. Například v originální KeyVal notaci před převedením do objektu PmMap by zápis mohl vypadat následovně: "title0:Kotel1;value0:#data:Kotel1/;title1:Kotel2;value1:#data:Kotel2/;"
Pokud není nastaveno, pak bude v nabídce jediný počátek výběru a ten se určí z hodnoty initValue.
 
Povolené hodnoty (valueN) počátků výběrů (root) jsou:
#xx - Počátky PROMOTIC cest, např. "value0:#pmres;value1:#appres;"
#xx:yy/zz - PROMOTIC cesty včetně podsložek, např. "value0:#pmres:Img/;value1:#appres:Img/;"
disk: - Zařízení v podobě písmen disků, např. "value0:c:;value1:d:;"
disk:yy/zz - Cesty v podobě písmen disků včetně podsložek, např. "value0:c:\Temp\;value0:d:\Data\;"
$disks - Automaticky se přidají všechna přimapovaná fyzická disková zařízení (písmena disků), např. "value0:$disks;"
hide[nepovinné] (Long) Umožňuje nastavit, co se má skrýt.
0 (přednastaveno) - Zobrazit vše.
1 - Skrýt podsložky.
2 - Skrýt soubory.
existence[nepovinné] (Long) Umožňuje nastavit, zda při výběru souboru/složky testovat na existenci/neexistenci.
0 (přednastaveno) - Netestuje se.
1 - Potvrzení, pokud vybraný soubor/složka již existuje.
10 - Vybraný soubor/složka musí existovat.
11 - Vybraný soubor/složka nesmí existovat.
defaultExt[nepovinné] (String) Implicitní přípona nového souboru, pokud se při výběru neuvede. Například "csv".
filter[nepovinné] (PmMap) Seznam zobrazovaných filtrů souborů v podobě vnořené mapy (Submap). Pro snadné vytvoření/nastavení vnořené mapy (Submap) v položce jiné mapy, lze použít metodu PmMap.mapSetSubmapAt. Tato metoda zajistí, že v dané položce bude vnořená mapa a do této mapy navíc umí hromadně přidat položky z řetězce ve formátu KeyVal.
 
Každý filtr je tvořen dvojicí hodnot: popis (titleN) a hodnota (valueN), kde N je index (indexováno od 0). Popisy (titleN) jsou nepovinné. Například v originální KeyVal notaci před převedením do objektu PmMap by zápis mohl vypadat následovně: "title0:Obrázky;value0:*.jpg,*.png,*.bmp;title1:Všechny soubory;value1:*.*;"
 
Pokud není nastaveno, pak bude v nabídce jediný filtr pro všechny soubory.
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á cesta k souboru/složce.
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ý soubor/složka.
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 souboru umístěného pouze ve složce aplikace (pouze ini, log, nebo všechny soubory)
JavaScriptVyber a zkopíruj do schránky

var oCreator = Pm.CreateView(null, "/#glob/filepath", "title:App files;initValue:#app:MyApp.log;mode:1;hide:1;defaultExt:ini;", "target:_blank;modal:1;");
var oView = oCreator.View;
oView.mapSetSubmapAt("filter", "", "title0:Setting log;value0:*.ini,*.log;title1:All files;value1:*.*;");
oView.onClose = function(ev)
{
Pm.Debug("onClose ReturnValue=" + ev.ReturnValue);
};
oCreator.Open();
Příklad2:
Výběr pouze cesty ke složce umístěné v této aplikaci (#app:). Vrácená hodnota po ukončení je zpracována ve funkci onClose.
JavaScriptVyber a zkopíruj do schránky

function onClose(ev)
{
if (ev.CloseReason == "ok")
{
Pm.Debug("onClose ReturnValue=" + ev.ReturnValue);
}
}

var oCreator = Pm.CreateView(null, "/#glob/filepath", "title:PmAppFiles,initValue:#app:;mode:2;", "target:_blank;modal:1;");
oCreator.View.onClose = onClose;
oCreator.Open();
Příklad3:
Uložení textu do nového nebo vybraného txt souboru ve složce Data (#data:). Vrácená hodnota po ukončení je zpracována ve funkci onClose.
Zpracování přepokládá, že v obrazu existuje metoda projektanta "SaveFile", která převezme parametry a metodou FileTextWrite soubor uloží a výsledek uložení vrací zpět.
JavaScriptVyber a zkopíruj do schránky

function onClose(ev)
{
if (ev.CloseReason == "ok")
{
var sFilePath = ev.ReturnValue;
if (sFilePath != "")
{
var sText = "Hello world!";
var bDone = pMe.PmPanel.Methods.SaveFile(sFilePath, sText);
Pm.Debug("Save text to file=" + sFilePath + " is " + bDone);
}
}
}

var oCreator = Pm.CreateView(null, "/#glob/filepath", "title:Create File;initValue:#data:;mode:1;defaultExt:txt;", "target:_blank;modal:1;");
oCreator.View.onClose = onClose;
oCreator.Open();

Historie:
Pm9.00.09: Vytvořeno
© MICROSYS, spol. s r.o.