On this page
calculate
Calculate
XLSFormien ja rtSurveyn calculate-kysymyksiä käytetään suorittamaan laskutoimituksia lomakkeen muihin kenttiin tai arvoihin perustuen. Nämä kysymykset eivät näy käyttäjälle, vaan toimivat taustalla tallentaen tuloksensa myöhempää käyttöä tai lähettämistä varten.
Syntaksi
XLSFormissa calculate-kysymys määritellään seuraavasti:
| type | name | label | calculation |
|---|---|---|---|
| calculate | calc_q1 | ${q1} + ${q2} |
- type: Aina “calculate” tällä kysymystyypillä.
- name: Yksikäsitteinen nimi calculate-kysymykselle.
- label: Jätetään yleensä tyhjäksi, koska calculate-kysymykset eivät näy käyttäjille.
- calculation: Arvioitava kaava.
Käyttötarkoitukset
Calculate-kysymyksiä käytetään yleisesti:
- Aritmeettisten operaatioiden suorittamiseen
- Merkkijonojen yhdistämiseen
- Monimutkaisen logiikan tai funktioiden soveltamiseen
- Väliaikaisten tulosten tallentamiseen myöhempää käyttöä varten
Esimerkit
Perusaritmetiikka
| type | name | calculation |
|-----------|----------|-------------|
| calculate | total | ${price} * ${quantity} |
Merkkijonojen yhdistäminen
| type | name | calculation |
|-----------|----------|-------------|
| calculate | full_name| concat(${first_name}, ' ', ${last_name}) |
Funktioiden käyttö
| type | name | calculation |
|-----------|----------|-------------|
| calculate | age | int((today() - ${date_of_birth}) / 365.25) |
Edistynyt käyttö rtSurveyssa
pulldata()-funktio
rtSurvey tukee pulldata()-funktiota calculate-kentissä, mikä mahdollistaa tietojen hakemisen ulkoisista CSV-tiedostoista:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | city | pulldata('cities', 'city_name', 'zip_code', ${zip_input}) |
Syntaksi
pulldata():n perusyntaksi on:
pulldata('csv_filename', 'column_to_return', 'key_column', ${matching_value})
- ‘csv_filename’: CSV-tiedoston nimi (ilman .csv-päätettä)
- ‘column_to_return’: Sarakkeen nimi, joka sisältää haluamasi tiedot
- ‘key_column’: Sarakkeen nimi, jota vasten verrataan
- ${matching_value}: Avainsarakkeesta etsittävä arvo (usein lomakkeen muuttuja)
Tärkeät huomiot
- CSV-tiedosto on ladattava yhdessä XLSFormin kanssa kyselyn käyttöönottovaiheessa.
- Käytä pilkkuja erottimena CSV-tiedostossa, ei puolipisteitä.
- Vältä pilkkujen käyttöä CSV-tiedoston tietokenttien sisällä, sillä ne voivat aiheuttaa jäsennysongelmia.
- pulldata() tukee vain 1-1-suhteita. Jos useita vastaavuuksia löytyy, se palauttaa vain ensimmäisen.
- Vedetyn tekstin pituudessa voi olla rajoituksia (noin 76 merkkiä).
- Voit käyttää pulldata():a rajoitteissa merkintöjen validointiin CSV-tietoihin verraten.
Ehdolliset laskennat
Voit käyttää if()-lausekkeita ehdollisiin laskutoimituksiin:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | discount | if(${total} > 1000, ${total} * 0.1, 0) |
Parhaat käytännöt
- Käytä merkityksellisiä nimiä calculate-kentille lomakkeen luettavuuden parantamiseksi.
- Vältä liian monimutkaisia laskutoimituksia yhdessä kentässä; jaa ne tarvittaessa.
- Testaa laskutoimituksesi perusteellisesti, erityisesti käyttäessäsi monimutkaisia kaavoja tai ulkoisia tietoja.
- Muista, että calculate-kentät suoritetaan aina kun lomake evaluoidaan, mikä voi vaikuttaa suorituskykyyn erittäin monimutkaisissa tai lukuisissa laskutoimituksissa.
- Käyttäessäsi pulldata():a varmista, että CSV-tiedostosi on oikein muotoiltu ja testaa perusteellisesti omilla tiedoillasi ja lomakerakenteellasi.
Rajoitukset
- Calculate-kenttien arvoja ei voi suoraan muokata käyttäjä.
- Calculate-kentän tulokset eivät ole välittömästi näkyvissä, ellei niihin viitata näyttökentässä tai niitä käytetä lomakelogiikassa.
Oliko tämä sivu hyödyllinen?