Článek: AN0001916Aktualizováno:: 21.01.2020
Mezi stránkami lze předávat hodnoty pomocí URL parametrů. URL může obsahovat více parametrů, které jsou odděleny znakem &.
Přes URL si nemusíte přímo předat hodnotu, ale jen ID existujícího záznamu, který si v pravidle načtete z databáze a z něj získáte požadované hodnoty.
Příklad URL požadavku se třemi parametry:
https://www.objectgears.cz/DataDetail.aspx?id=16-100&name=og&number=39
Pro čtení hodnot a převod na správný datový typ použijte následujíce funkce.
Místo použití skriptu: Pravidla typu Skript, Skripty v detailu třídy, Skript v detailu stránky, Webpart Skript, Volání skriptu...
var s = OG.QueryString.GetString('name');
var i = OG.QueryString.GetInt('number');
var d = OG.QueryString.GetDateTime('name');
var g = OG.QueryString.GetGuid('name');
var b = OG.QueryString.Exist('name');
Nastavení hodnot do DataRow před zobrazením nového záznamu v detailu
Příklady skriptů do pravidla Před zobrazením nového záznamu v detailu, které zpracuje URL parametry a vyplní jimi příslušný ovládací prvek (pole záznamu). V příkladech jsou použity různé názvy URL parametrů (varFrom, varCenter atd.) a různé kódy sloupců (datetimefrom, center). V určitých případech skripty pracují i s kódem odkazované třídy (center...).
Typ sloupce |
Typ zobrazení |
Skript |
Text |
|
OGActualDataRow['name'] = OG.QueryString.GetString('varName'); |
Pravda/Nepravda |
|
OGActualDataRow['active'] = OG.QueryString.GetString('varActive') == 'A';
OGActualDataRow['active'] = OG.QueryString.GetInt('varActive') == 1;
|
Celé číslo |
|
OGActualDataRow['count'] = OG.QueryString.GetInt('varCount'); |
Desetinné číslo |
|
OGActualDataRow['price'] = OG.QueryString.GetInt('varPrice'); |
Soubory |
|
Není podporováno. |
Datum a čas |
|
OGActualDataRow['datetimefrom'] = OG.QueryString.GetDateTime('varFrom', 'dd/MM/yyyy'); |
Guid |
|
GActualDataRow['gid'] = OG.QueryString.GetGuid('varId'); |
Číselníková hodnota (odkaz na třídu) - jednoduchý odkaz |
Combobox *) |
OGActualDataRow['center'] = OG.QueryString.GetInt('varCenter'); |
Číselníková hodnota (odkaz na třídu) - jednoduchý odkaz |
Vyhledávací formulář *) |
var clCenter = OGDataParent.Model.ClassDefs['center'];
var id = OG.QueryString.GetInt('varCenter');
OGActualDataRow['center'] = OG.DataRow.GetDataById(clCenter.Id, id); |
Číselníková hodnota (odkaz na uživatele) - jednoduchý odkaz |
Vyhledávací formulář *) |
var pId = OG.QueryString.GetInt('varPerson');
var p = OG.Person.GetById(pId);
OGActualDataRow['person'] = p.ToPersonInfo();
|
Číselníková hodnota (odkaz na třídu) - násobný odkaz |
|
var clCenter = OGDataParent.Model.ClassDefs['center'];
var id = OG.QueryString.GetInt('varCenter');
var dr = OG.DataRow.GetDataById(clCenter.Id, id);
OGActualDataRow['center'].Add(dr.ToEntityInfo());
|
Číselníková hodnota (odkaz na uživatele) - násobný odkaz |
|
var pId = OG.QueryString.GetInt('varPerson);
var p = OG.Person.GetById(pId);
OGActualDataRow['person'].Add( p.ToPersonInfo());
|
Odkaz na třídu |
|
OGActualDataRow['class'] = OG.QueryString.GetInt('varClass); |
Číselníková hodnota (na různé třídy) |
|
var clCenter = OGDataParent.Model.ClassDefs['center'];
var id = OG.QueryString.GetInt('varCenter');
var dr = OG.DataRow.GetDataById(clCenter.Id, id);
OGActualDataRow['center'].Add(dr.ToEntityInfo());
|
Barva |
|
OGActualDataRow['color'] = OG.QueryString.GetInt('varColor); |
Obrázek |
|
OGActualDataRow['image'] = OG.QueryString.GetString('varImage'); |
*) Pro zobrazení sloupce pomocí comboboxu stačí do DataRow uložit pouze ID odkazovaného záznamu. Při zobrazení pomocí vyhledávacího formuláře samotné ID nestačí. Je třeba do DataRow vložit instanci DataRow nebo Person.