~~ODT~~
====== Risttabeli väli ======
===== Milleks? =====
Risttabel võimaldab luua andmekoosseise mitme tunnuse järgi. Risttabelit kasutatakse nt lähetuste puhul, kus tuleb kajastada erinevaid kululiike koos maksumustega. Risttabelis kasutatakse sageli ka arvutamisfunktsionaalsust, et lihtsustada andmesisestaja tööd.
===== Kuidas seadistada? =====
* Vaata väljade üldiseid seadistusvõimalusi [[wd:administraatorile:andmetüübihaldus:väljad|siit]].
* Vaata risttabeli andmete kasutamist trükimallil [[wd:administraatorile:andmetüübihaldus:trükimallid#trükimalli_näiteid|siit]].
\\
{{youtube>RCFAzrLBErw?large}}
\\
==== Plokk "Välimus" ====
{{ :wd:välimus_risttabel.png |}}
{
"colNames":[
"Nr","Kuupäev","Selgitus"
],
"colModel":[
{"name":"id","index":"id", "width":30, "sortable":false, "editable":false, "hidden":false},
{"name":"kuupaev","index":"name", "width":150, "sortable":false, "editable":true},
{"name":"selgitus","index":"selgitus", "width":100, "sortable":false, "editable":true}
],
"caption": "Tööde teenuste eest maksmine"
}
\\
**Lõpptulemus - risttabeli lisamisvorm**\\
{{:wd:paevarahade_risttabeli_lisamisvorm.png|}}
\\
\\
==== Tabeli definitsioon ====
Väli on ettenähtud risttabeli loomiseks, selleks sisestage veergude, nende omaduste ja valemite definitsioonid;
==== Tabeli read ====
Sellele väljale sisestatud definitsioonid annavad täiendava võimaluse eeltäita valitud tabeliread uue dokumendi lisamisel. Järgmises näites lisatakse risttabelisse vaikimisi üks rida, kus päevarahaks on **32.00 €** {{ :wd:risttabel_v4ljade_eelt4itmine.png |}}
** Näite 1 tabeli definitsioon:**
{
"colNames":[
"Id","Päevade arv","Päevaraha","Summa"
],
"colModel":[
{"name":"id","index":"id","width":150, "sortable":false, "editable":true, "hidden":true},
{"name":"paevad","index":"paevad", "width":175, "sortable":false, "editable":true},
{"name":"paevaraha","index":"paevaraha", "width":150, "sortable":false, "editable":true},
{"name":"summa","index":"summa", "width":150, "sortable":false, "editable":true}
],
"formulas" : {
"expr(paevad:1*paevaraha:1)" : "summa:1",
"sum(summa:first..summa:last)" : "crstbl_setExpFieldValue(\"summa_kokku_b\",result);"
},
"caption": null
}
\\
**Näite 1 tabeli read:**
[
{"paevaraha":"32.00 €"}
]
\\
\\
\\
=== Tabeliridade defineerimise näide, kui on soov lisada n-ridu ===
Tabeliread peavad teineteisest olema eraldatud komadega.\\
**Näite 2 tabeli read**
[
{"paevaraha":"32.00 €"},
{"paevaraha":"32.00 €"}
]
\\
\\
\\
=== Tühi tabelirida I variant ===
Tühja tabelirea tekitamiseks pane tühik jutumärkide vahele **{"paevaraha":"tühik"}** NB! Ei toimi SOSEL väljatüübi puhul.
**Näite 3 tabeli read**
[
{"paevaraha":" "}
]
\\
\\
\\
=== Tühi tabelirida II variant ===
Tühja tabelirea tekitamiseks, kus tabel sisaldab SOSEL väljatüüpi, toimi järgnevalt:
**Näite 4 tabeli read**
[
{"__act":""}
]
\\
\\
\\
=== Tabelirea ehk veeru kohustuslikkus ===
Tabelirea kohustuslikuks seadistamiseks lisa parameeter **"required":true**.
\\
\\
\\
\\
=== Numbrivälja kümnendike eraldamine punkti asemel komaga ning kümnendikkohtade arvu määramine ===
{"name":"currency","index":"currency", "width":75, "sortable":false,
"editable":true, "formatter": "number", "formatoptions":{"decimalSeparator":",", "decimalPlaces": 2}},
[[http://www.trirand.com/jqgridwiki/doku.php?id=wiki:predefined_formatter|Loe lisaks jqGrid Wiki-st...]]
\\
\\
\\
\\
=== Lähetustaotluse tabeli definitsiooni näide ===
{
"colNames":[
"Id","Kululiik","Kulude katmise allikas","Kulusumma"
],
"colModel":[
{"name":"id","index":"id","width":150, "sortable":false, "editable":true, "hidden":true},
{"name":"kululiik","index":"kululiik", "width":175, "sortable":false, "editable":true, "classifier" : "Kululiik"},
{"name":"kulude_allikas","index":"kulude_allikas", "width":400, "sortable":false, "editable":true, "classifier" : "Kulude katmise allikas"},
{"name":"kulusumma","index":"kulusumma", "width":175, "sortable":false, "editable":true}
],
"formulas" : {
"sum(kulusumma:first..kulusumma:last)" : "crstbl_setExpFieldValue(\"summa_kokku\",result);"
},
"caption": null
}
{{:wd:risttabeli_lisamisvorm.png|}}
\\
\\
\\
\\
==== "Tabeli definitsioon" välja täitmisest lähemalt ====
Esmalt tuleb määrata veergude nimed (atribuut **colNames**). Alati peab olema esimeseks veeruks “Id” ja ülejäänud jutumärkides ja komaga eraldatud.
\\
Veergude seadete (atribuudi **colModel**) määramisel on mitmeid võimalusi, nt veeru peitmine, mida tehakse reeglina Id veeru puhul; sidumine klassifikaatoriga (näites toodud teine veerg Kululiik veerus "name".\\
=== Risttabeli veergude võimalikud atribuudid ===
* **''name''** – administraatori enda poolt tuletatud nimi (kohustuslik märkida) – ei tohi sisaldada täpitähti ja tühikuid;
* **''sortable''** - sorteeritavus (valikud: true, false) **"sortable":true**
* **''editable''** - muudetavus (valikud: true, false);
* **''width''** - välja laius;
* **''hidden''** – peidetud (valikud: true, false);
* **''align''** – joondus (võimalikud valikud: left, center, right);
* **''classifier''** – klassifikaator (WD-s määratud klassifikaatori nimi);
* **ajax** - klassifikaatorit kuvatakse ajax-valikuna (valikud: true, false) nt **"ajax":true**;
* **combo** - klassifikaatorit kuvatakse ripploeteluna (valikud: true, false) nt **"combo":true**;
* **''sosel''** - [[#SOSEL_väli_ehk_ühe_objekti_valiku_väli|SOSEL väli ehk ühe objekti valiku väli]];
* **''required''** - [[#Tabelirea ehk veeru kohustuslikkus|Veeru täitmine on kohustuslik]];
* **''formulas''** - valemid;
* **''caption''** - tabeli pealkiri.
* **''formatter'':number** - kasutatakse numbrivormingut;
* **''formatoptions'': {"decimalSeparator":",", "decimalPlaces": 2}** - kasutatakse kümnendkohtade eraldajat ning komakohtasid on kaks, kasutatakse koos **''formatter'':number**
* **''translate''** (WD 5.2.0 - 13.10.2015) - risttabeli veergude tõlkimiseks, nt **"translate" : {"en":"Currency","ru":"Bалюта"}**\\
* **''"display_sosel_id_in_template":0''** - trükimallis ei kuvata tüübi ID-d
[[http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options|Loe seadetest lähemalt jqGrid Wiki-st...]]
\\
\\
\\
\\
\\
==== Risttabeli veeru väljatüübid ====
=== Kuupäevaväli ===
*[[wd:administraatorile:andmetüübihaldus:kuupäev|Vt rohkem tavapärase kuupäevavälja kohta]] \\
Kuupäevavälja seadistamiseks tuleb laienduse nimetuses kasutada **date**. \\
Näide: \\
"name":"x_date","index":"x_date"
* Mitme kuupäevavälja puhul võib esimese rea laienduse nimetuseks olla nt "x_date" ning teise rea laienduse nimetuseks nt "y_date"
\\
=== SOSEL väli ehk ühe objekti valiku väli ===
* [[wd:administraatorile:andmetüübihaldus:ühe_objekti_valik|Vt rohkem tavapärase SOSEL välja kohta]] \\
Ühe objekti valiku välja seadistamiseks tuleb lisada parameeter, kus 59277 viitab andmetüübi id-le.
"sosel" : 59277
\\
=== Ühe väärtuse valiku väli ===
* [[wd:administraatorile:andmetüübihaldus:valikväli|Vt rohkem tavapärase SOSEL välja kohta]] \\
Ühe väärtuse valiku välja seadistamiseks tuleb lisada parameeter, kus "Kululiik" viitab klassifikaatori üksühele nimetusele.
"classifier" : "Kululiik"
\\
=== Ühe kasutaja valiku väli ===
* [[wd:administraatorile:andmetüübihaldus:ühe_kasutaja_valik|Vt rohkem tavapärase ühe kasutaja valiku välja kohta]]
Ühe kasutaja valiku välja seadistamiseks tuleb lisada parameeter:
"sosel" : 2
\\
\\
\\
=== Mitmerealine tekst ===
* [[wd:administraatorile:andmetüübihaldus:mitmerealine_tekst|Vt rohkem tavapärase mitmerealise tekstivälja kohta]] Mitmerealise tekstivälja seadistamiseks tuleb lisada parameeter:
"edittype":"textarea"
\\
\\
\\
==== Lihtsamad arvutusvalemid ====
Võimalik on defineerida valemeid.[[#Näide A|Vt lisaks näite A atribuuti "formulas"]]
\\
\\
=== Liitmine, lahutamine, korrutamine, jagamine ===
Antud järgnevas näites korrutatakse esimeses reas omavahel Hind ja Kurss ning summa kantakse risttabeli vastava rea lõpus “Summa (EEK)” väljale.
\\(sellel väljal defineeritakse arvutustehe)
"expr(price:1*rate:1)" : "sum_eek:1"
\\
* **expr** – viitab arvutustehtele, mille järel sulgudes vastav tehe defineeritakse;
* **(price:1*rate:1)** – price ja rate tähistavad veergude nimesid ja nr **1** tabeli esimest rida;
* pärast koolonit kuvatakse valemites tulemus (ehk millisele tabeliveerule arvutustulemus kantakse);
\\
\\
=== Kõikide ridade summa ===
Risttabeli ridade summad liidetakse ning summeeritakse eraldi väljale (ekspordi nimi “kulud_kokku”).\\
**"sum(sum_eur:first..sum_eur:last)" : "crstbl_setExpFieldValue(\"kulud_kokku\",result);"**
* **sum(sum_eur:first..sum_eur:last)** – kogu tabeli "sum_eur" veerud (esimene kuni viimane) liidetakse.
* pärast koolonit määratakse, kus tulemus kuvatakse (kasutades JavaScripti sündmuste defineerimist). Ridade summa arvutamiseks tuleb lisada vormile [[wd:administraatorile:andmetüübihaldus:number|numbriväli]]. Numbriväljal peab olema sama ekspordinimi mis on määratud **"crstbl_setExpFieldValue(\"**kulud_kokku**\",result);"**
\\
\\
=== Komakohad arvutustehtes ja lõpptulemuses ===
"decimalPlaces" : {
"expr" : "2",
"sum" : "2"
},
expr - komad arvutustehtes
sum - komad lõpptulemuses
\\
\\
=== Näide A ===
NB! Risttabeli veergude definitsioonidesse (colModel) tuleb kindlasti lisada **index** atribuut.
{
"colNames":[
"Id","Kululiik","Hind","Ilma km","Km","Valuuta","Kurss","Summa (EEK)"
],
"colModel":[
{"name":"id","index":"id", "sortable":false, "editable":false, "hidden":true},
{"name":"name","index":"name", "width":150, "sortable":false, "editable":true},
{"name":"price","index":"price", "width":100, "sortable":false, "editable":true},
{"name":"no_vat","index":"no_vat", "width":100, "sortable":false, "editable":true},
{"name":"vat", "width":75, "sortable":false, "editable":true, "align":"right", "sorttype":"float"},
{"name":"currency","index":"currency", "width":75, "sortable":false, "editable":true},
{"name":"rate","index":"rate", "width":75, "sortable":false, "editable":true, "align":"right", "sorttype":"float"},
{"name":"sum_eur","index":"sum_eur", "width":100, "sortable":false, "editable":true, "align":"right", "sorttype":"float"}
],
"formulas" : {
"expr(price:1*rate:1)" : "sum_eur:1",
"sum(sum_eur:first..sum_eur:last)" : "crstbl_setExpFieldValue(\"kulud_kokku\",result);"
},
"decimalPlaces" : {
"expr" : "2",
"sum" : "2"
},
"caption": "Tööde teenuste eest maksmine"
}
\\
\\
\\
==== Keerulisemad arvutusvalemid ====
=== Liitmine ja korrutamine ühes tehtes ===
"expr(amount:1* (price:1+add:1))" : "sum:1"
=== Näide B ===
{
"colNames":[
"Id","Ruum","m2","EUR/m2","Kõrvalkulud","Summa","Märkused"
],
"colModel":[
{"name":"id","index":"id", "sortable":false, "editable":false, "hidden":true},
{"name":"objekt","index":"objekt", "width":300, "sortable":false, "editable":true, "sosel" : 59277},
{"name":"amount","index":"amount", "width":175, "sortable":false, "editable":true},
{"name":"price","index":"price", "width":175, "sortable":false, "editable":true},
{"name":"add","index":"add", "width":175, "sortable":false, "editable":true},
{"name":"sum","index":"sum", "width":175, "sortable":false, "editable":false},
{"name":"notes","index":"notes", "width":175, "sortable":false, "editable":true}
],
"formulas" : {
"expr(amount:1* (price:1+add:1))" : "sum:1",
"sum(sum:first..sum:last)" : "crstbl_setExpFieldValue(\"kogumaksumus\",result);"
},
"decimalPlaces" : {
"expr" : "2",
"sum" : "2"
},
"caption": null
}
=== Sõidupäeviku näide ===
{
"colNames":[
"Id","Kuupäev","Sõidu eesmärk","Näit alguses","Lõppnäit","Läbisõit"
],
"colModel":[
{"name":"id","index":"id", "sortable":false, "editable":false, "hidden":true},
{"name":"x_date","index":"x_date", "width":100, "sortable":false, "editable":true},
{"name":"name","index":"name", "width":400, "sortable":false, "editable":true},
{"name":"start","index":"start", "width":100, "sortable":false, "editable":true, "align":"right"},
{"name":"end","index":"end", "width":100, "sortable":false, "editable":true, "align":"right"},
{"name":"kilometrage","index":"kilometrage", "width":100, "sortable":false, "editable":true, "align":"right"}
],
"formulas" : {
"expr(end:1 - start:1)" : "kilometrage:1",
"sum(kilometrage:first..kilometrage:last)" : "crstbl_setExpFieldValue(\"labisoit_kokku\",result);"
},
"caption": null
}
{{tag>risttabel väljad}}
**[[wd:administraatorile|Tagasi administraatori juhendi avalehele]]**