~~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]]**