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:

typenamelabelcalculation
calculatecalc_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:

  1. Aritmeettisten operaatioiden suorittamiseen
  2. Merkkijonojen yhdistämiseen
  3. Monimutkaisen logiikan tai funktioiden soveltamiseen
  4. 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

  1. CSV-tiedosto on ladattava yhdessä XLSFormin kanssa kyselyn käyttöönottovaiheessa.
  2. Käytä pilkkuja erottimena CSV-tiedostossa, ei puolipisteitä.
  3. Vältä pilkkujen käyttöä CSV-tiedoston tietokenttien sisällä, sillä ne voivat aiheuttaa jäsennysongelmia.
  4. pulldata() tukee vain 1-1-suhteita. Jos useita vastaavuuksia löytyy, se palauttaa vain ensimmäisen.
  5. Vedetyn tekstin pituudessa voi olla rajoituksia (noin 76 merkkiä).
  6. 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

  1. Käytä merkityksellisiä nimiä calculate-kentille lomakkeen luettavuuden parantamiseksi.
  2. Vältä liian monimutkaisia laskutoimituksia yhdessä kentässä; jaa ne tarvittaessa.
  3. Testaa laskutoimituksesi perusteellisesti, erityisesti käyttäessäsi monimutkaisia kaavoja tai ulkoisia tietoja.
  4. Muista, että calculate-kentät suoritetaan aina kun lomake evaluoidaan, mikä voi vaikuttaa suorituskykyyn erittäin monimutkaisissa tai lukuisissa laskutoimituksissa.
  5. 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?