1. Základní informace
1.1. Popis ovládacího prvku
Schedule je ovládací prvek určený ke stanovení časového období od-do, který se skládá buď ze dvou textových polí „Termín“ a „do“, nebo ze dvou datumových pickerů „Termín“ a „do“, a v obou případech ze zaškrtávacího tlačítka „Od-Do“. Při vytvoření se vloží navíc ovládací prvky Space a JavaScript.
1.2. Vytvoření nového ovládacího prvku
- Nový schedule je možné vytvořit pouze z editačního formuláře pomocí toolbaru s ovládacími prvky.
- Nejdříve se kliknutím myši v editačním formuláři určí pozice, na kterou má být nový schedule umístěn. Tím dojde ke zvýraznění vybrané pozice šedou horizontální linií. Následně stačí v toolbaru editačního formuláře kliknout na položku „Schedule“, potvrdit otázku na vytvoření nového schedule z více prvků, a v následujícím dialogu „2x TextBox / 2x DatePicker ?“ zvolit typ použitých ovládacích prvků:
- 2x TextBox – tlačítkem „Ano“
- 2x DatePicker – tlačítkem „Ne“
- Potvrzením typu použitých ovládacích prvků dojde k jejich vložení na předem vybrané místo editačního formuláře.
- Nedojde-li před vložením nového schedule k určení požadované pozice, bude nový schedule vložen na konec editačního formuláře.
1.3. 2x TextBox
- CheckBox s názvem „Od-Do“
- OnClick:
try { ng_oddo_OnClick(); } catch (e) {}
- TextBox s názvem „Termín“
- Datový typ: Datum
- Možnosti: Čas, Zobrazovat zkrácený název dne
- Popisek „Termín od“ nastavuje JavaScript jen po dobu, kdy je zaškrtnuto „Od-Do“.
- OnChange:
try { if (#ng_termin#.value != '' && #ng_oddo#.checked && #ng_do#.value != '') { var from = Str2Date(control_GetValue(#ng_termin#)); if (from > Str2Date(control_GetValue(#ng_do#))) control_SetValue(#ng_do#, from); } } catch (e) {}
- TextBox s názvem „do“
- Datový typ: Datum
- Možnosti: Čas, Zobrazovat zkrácený název dne
- Není-li zaškrtnuto „Od-Do“, hodnota ovládacího prvku se vymaže.
- JavaScript
function ng_oddo_OnLoad()
{
try
{
if (#ng_oddo#.checked)
{
#ng_do:Table#.style.display = '';
#ng_termin:Name#.innerText = 'Termín od';
}
else
{
#ng_do:Table#.style.display = 'none';
#ng_termin:Name#.innerText = 'Termín';
control_SetValue(#ng_do#, '', '');
}
}
catch (e) {}
}
function ng_oddo_OnClick()
{
ng_oddo_OnLoad();
try
{
if (#ng_oddo#.checked)
{
if (#ng_termin#.value != '') control_SetValue(#ng_do#, #ng_termin#.value, #ng_termin#.tb2.value);
}
}
catch (e) {}
}
ng_oddo_OnLoad();
1.4. 2x DatePicker
- CheckBox s názvem „Od-Do“
- OnClick:
try { ng_oddo_OnClick(); } catch (e) {}
- DatePicker s názvem „Termín“
- Možnosti: Čas, Zobrazovat zkrácený název dne
- Popisek „Termín od“ nastavuje JavaScript jen po dobu, kdy je zaškrtnuto „Od-Do“.
- OnChange:
try { var from = Str2Date(control_GetValue(#ng_termin#)); if (!#ng_oddo#.checked || from > Str2Date(control_GetValue(#ng_do#))) control_SetValue(#ng_do#, from); } catch (e) {}
- DatePicker s názvem „do“
- Možnosti: Čas, Zobrazovat zkrácený název dne
- Není-li zaškrtnuto „Od-Do“, převezme ovládací prvek hodnotu ovládacího prvku „Termín“ (jednodenní událost), a to při otevření editačního formuláře i při každé změně hodnoty „Termín“.
- Toto chování mají ovládací prvky vložené aktuální verzí NET Genia; dříve vložené ovládací prvky si ponechávají svůj původní JavaScript.
- JavaScript
function ng_oddo_OnLoad()
{
try
{
if (#ng_oddo#.checked)
{
#ng_do:Table#.style.display = '';
#ng_termin:Name#.innerText = 'Termín od';
}
else
{
#ng_do:Table#.style.display = 'none';
#ng_termin:Name#.innerText = 'Termín';
control_SetValue(#ng_do#, Str2Date(control_GetValue(#ng_termin#)));
}
}
catch (e) {}
}
function ng_oddo_OnClick()
{
ng_oddo_OnLoad();
try
{
if (#ng_oddo#.checked)
{
#ng_do:Id#_Init();
control_SetValue(#ng_do#, Str2Date(control_GetValue(#ng_termin#)));
}
}
catch (e) {}
}
ng_oddo_OnLoad();
1.5. Editace nebo smazání ovládacích prvků
- U každého existujícího ovládacího prvku se po jeho levé straně v editačním formuláři zobrazuje ikona tužky, která slouží pro změnu nastavení ovládacího prvku nebo jeho smazání.
- Jednotlivé ovládací prvky mohou být v editačním formuláři vertikálně přesouvány metodou Drag&Drop. Přesunutí spočívá v chycení ovládacího prvku nejlépe za jeho název umístěný v levém sloupci editačního formuláře, a následném tažení až na požadované místo v editačním formuláři.
- Ovládací prvky je možné přesouvat jen se zaškrtnutým polem „Drag&Drop“ umístěným nad toolbarem s ovládacími prvky. Z bezpečnostních důvodů je toto pole po každém přihlášení do aplikace nezaškrtnuté, aby nedošlo k nechtěnému přesunutí ovládacího prvku.
- Smazání ovládacího prvku má za následek nevratné smazání databázového sloupce spojeného s tímto ovládacím prvkem v databázi, a tudíž i ke smazání jeho hodnot ve všech záznamech databázové tabulky. Některé ovládací prvky v systémových editačních formulářích není možné smazat, protože jsou nutné k základní funkčnosti celé aplikace.