Dokumenttipohjan laskentaelementti on tarkoitettu matemaattisten laskukaavojen laskemiseen dokumentin tietojen pohjalta.
Laskentaelementille annetaan laskukaava elementin asetuksissa dokumenttipohjaeditorissa. Laskentakaavan muodostamisen helpottamikseksi voit käyttää funktion ja lomakekentän lisäykseen helpottavia toimintoja.
Laskentakaavan alapuolella olevalle alueelle tulostuu laskentakaava selkokielisessä muodossa, sekä tieto siitä, onko laskentakaavassa jokin virhe. Huomioi, että se ei kuitenkaan osaa huomioida aivan kaikkia mahdollisia kaavavirheitä.
Funktiot
| Nimi | Kaava | Ohje |
| Neliöjuuri | DocsMath.sqrt() | Laskee neliöjuuren |
| Pyöristys | DocsMath.round() | Pyöristää lähimpään kokonaislukuun |
| Suurempi | DocsMath.max() | Valitsee kahdesta pilkulla erotetusta arvosta suuremman |
| Pienempi | DocsMath.min() | Valitsee kahdestapilkulla erotetusta arvosta pienemmän |
| Asteet radiaaneiksi | DocsMath.radians() | Muuttaa asteet radiaaneiksi (V120 lähtien) |
| Radiaanit asteiksi | DocsMath.degrees() | Muuttaa radiaanit asteiksi (V120 lähtien) |
| Sini | DocsMath.sin() | Sini funktio, arvo annetaan ja palautetaan radiaaneina (V120 lähtien) |
| Askussini | DocsMath.asin() | Askussini funktio, arvo annetaan ja palautetaan radiaaneina (V120 lähtien) |
| Kosini | DocsMath.cos() | Kosini funktio, arvo annetaan ja palautetaan radiaaneina (V120 lähtien) |
| Pienempi kuin | DocsMath.lessThan() |
Tarkistaa, onko ensimmäinen arvo pienempi kuin toinen. Jos on, palauttaa kolmannen arvon. (V127 lähtien) Esimerkki: Jos kentän Huom: Kaikki parametrit voivat olla joko viittauksia muihin numero- tai laskentaelementteihin tai käsin syötettyjä numeroita. |
| Suurempi kuin | DocsMath.greaterThan() |
Tarkistaa, onko ensimmäinen arvo suurempi kuin toinen. Jos on, palauttaa kolmannen arvon. (V127 lähtien) Esimerkki: Jos kentän Huom: Kaikki parametrit voivat olla joko viittauksia muihin numero- tai laskentaelementteihin tai käsin syötettyjä numeroita. |
| Yhtä suuri kuin | DocsMath.equals() |
Tarkistaa, ovatko kaksi arvoa täsmälleen samat. Jos ovat, palauttaa kolmannen arvon. (V127 lähtien) Esimerkki: Jos kentän Syöttämättä jätetyn kentän arvo ei ole yhtäsuuri kuin 0. (V136 lähtien) Huom: Kaikki parametrit voivat olla joko viittauksia muihin numero- tai laskentaelementteihin tai käsin syötettyjä numeroita. |
| Keskiarvo | DocsMath.avarage() |
Laskee funktion parametreinä annettujen arvojen keskiarvon. (V136 lähtien) Esimerkki: Jos jokin lomakekentistä on täyttämättä, sitä ei huomioida lainkaan keskiarvon laskennassa. Esimerkiksi, jos molemmissa Funktiolle voi antaa halutun määrän parametrejä, joiden kesken keskiarvo lasketaan. |
Funktion sulkujen sisälle annetaan arvo, jolle funktio suoritetaan. Arvo voi olla käsin kaavaan kirjoitettu luku tai dokumentille johonkin elementtiin annettu arvo.
Funktioita voidaan kirjoittaa myös sisäkkäin, esim:
DocsMath.round(DocsMath.max({$document.section3.element12}, 1))Jos funktion sisällä on esim. valintaelementti, jolla useita arvoja tai itse tehty perus matemaattinen kaava, lasketaan funktion sisällä oleva arvo ennen kuin sille suoritetaan funktio. Et siis voi tehdä tavallisilla funktioilla kaavaa, jossa esim. jokaiselle valintaelementin arvolle lasketaan funktio erikseen. Tähän käytettävä lomakekenttäfunktioita (ks. Lomakekenttäfunktiot)
Lomakekentät
Lomakekentiksi kutsutaan kaavaan kirjoitettuja viittauksia muihin dokumentilla oleviin elementteihin. Lomakekenttiä voidaan antaa arvoiksi funktioille ja perus laskutoimituksille.
Lomakekenttä -valitsin näyttää aluksi dokumenttipohjan kaikki osiot ja taulukot. Klikkaamalla niistä, aukeaa lista kyseisen osion tai taulukon mahdollisista elementeistä, joita voidaan laskukaavaan tuoda.
Lomakekenttä on laskukaavassa aina muodoltaan tekninen, mutta kaavan alapuolelta näkee selkokielisenä osion/taulukon sekä elementin nimen.
Toimintaperiaate riippuen laskenta- ja lomakekenttäelementin sijainneista
| Laskentaelementin sijainti | Lomakekentän sijainti | Toimintaperiaate |
| Osio tai monistettava osio | Sama osio | Hakee saman yksittäisen osion sisällä olevan yksittäisen arvon. |
| Osio, taulukon lisätieto tai sarake | Eri yksittäinen osio | Hakee toisen osion sisällä olevan yksittäisen arvon. |
| Osio, taulukon lisätieto tai sarake | Eri monistettava osio | Hakee kaikista monistettavan osion kopioista kaikki kyseisen elementin arvot. Arvot lasketaan oletuksena yhteen (poislukien lomakekenttäfunktiot, ks. lomakekenttäfunktio) |
| Osio, taulukon lisätieto tai sarake | Eri taulukon lisätieto tai sarake | Hakee kaikista taulukon kopioista kaikki kyseisen elementin arvot. Arvot lasketaan oletuksena yhteen (poislukien lomakekenttäfunktiot, ks. lomakekenttäfunktio) |
| Taulukon sarake | Saman taulukon sarake | Hakee vain kyseisen rivin elementistä yksittäisen arvon. |
| Taulukon sarake tai lisätieto | Saman taulukon lisätietokenttä | Hakee vain kyseisen yksittäisen taulukon lisätietoelementin yksittäisen arvon. |
| Taulukon lisätieto | Saman taulukon sarake | Hakee vain kyseisen yksittäisen taulukon kaikki kyseisen sarakkeen elementtien arvot. Arvot lasketaan oletuksena yhteen (poislukien lomakekenttäfunktiot, ks. lomakekenttäfunktio) |
Lomakekenttäfunktiot
Lomakekenttäfunktiot ovat funktioita, jotka kohdistuvat vain yksittäiseen lomakekenttään tai sen kaikkiin kopioihin. Tämä eroaa siis normaaleista funktioista sillä, että saman funktion sisään ei voi laittaa muita lomakekenttiä, vaan operaatio kohdistuu suoraan viitattuun kenttään.
Lomakekenttäfunktioita koskee samat sijaintiin perustuvat säännöt, kuin lomakekentissä muutoinkin. (ks. Toimintaperiaate riippuen laskenta- ja lomakekenttäelementin sijainneista)
Lomakekenttäfunktioiden käyttöön ei ole erillistä käyttöliittymää, vaan kaavan tulee kirjoittaa itse käsin.
Syntaksi
{$document.section0.element0:count(Kyllä)}Lomakekenttäfunktio aloitetaan kirjoittamalla elementin viittauksen jälkeen kaksoispiste, sen jälkeen tulee funktion nimi sekä sulkeet. Sulkeiden sisälle tulee funktion mahdollinen parametri.
Käytössä olevat lomakekenttäfunktiot
| Nimi | Kaava | Parametri | Ohje |
| Määrä | :count(suodatin) | Suodatin, jolla voidaan laskea valintaelementin tiettyn vastauksen kappalemäärä. |
Laskee joko kaikkien vastausten tai tietynlaisten vastausten lukumäärän. Esim. kätevä laskemaan valintaelementin vastausten lukumäärän. (ks. Toimintaperiaate riippuen laskenta- ja lomakekenttäelementin sijainneista) Valintaelementin arvo ei saa sisältää seuraavia merkkejä: , . : { } |
Viittaus toiseen laskentaelementtiin
Lomakekenttä voi olla myös toinen laskentaelementti. Laskentaelementtejä voi myös ketjuttaa useita peräkkäin. Tällöin ohjelma ratkaisee automaattisesti elementtien laskujärjestyksen. Eli ensin lasketaan kaavat, joihin jokin toinen laskentaelementti viittaa jne. Huomioi, että kaava ei voi toimia, jos viittauksiin muodostuu silmukka.
Esim. taulukkoon voidaan lisätä sarake, johon halutaan rivikohtainen laskukaava. Erillisessä osiossa tai taulukon lisätietokentässä voidaan sitten laskea rivikohtaisesti lasketut arvot vaikkapa yhteen.