On this page
calculate
Skaičiavimas
XLSForm ir rtSurvey skaičiavimo klausimai naudojami skaičiavimams atlikti pagal kitus formos laukus ar reikšmes. Šie klausimai nerodomi naudotojui, bet vykdomi fone, saugodami savo rezultatus vėlesniam naudojimui ar pateikimui.
Sintaksė
XLSForm skaičiavimo klausimas apibrėžiamas taip:
| type | name | label | calculation |
|---|---|---|---|
| calculate | calc_q1 | ${q1} + ${q2} |
- type: Visada „calculate" šiam klausimo tipui.
- name: Unikalus skaičiavimo klausimo pavadinimas.
- label: Paprastai paliekamas tuščias, nes skaičiavimo klausimai nerodomi naudotojams.
- calculation: Vertinama formulė.
Naudojimo atvejai
Skaičiavimo klausimai dažnai naudojami:
- Aritmetinėms operacijoms atlikti
- Eilutėms sujungti
- Sudėtingai logikai ar funkcijoms taikyti
- Tarpiniams rezultatams saugoti vėlesniam naudojimui
Pavyzdžiai
Pagrindinė aritmetika
| type | name | calculation |
|-----------|----------|-------------|
| calculate | total | ${price} * ${quantity} |
Eilučių sujungimas
| type | name | calculation |
|-----------|----------|-------------|
| calculate | full_name| concat(${first_name}, ' ', ${last_name}) |
Funkcijų naudojimas
| type | name | calculation |
|-----------|----------|-------------|
| calculate | age | int((today() - ${date_of_birth}) / 365.25) |
Pažangus naudojimas rtSurvey sistemoje
Funkcija pulldata()
rtSurvey palaiko funkciją pulldata() skaičiavimo laukuose, leidžiančią gauti duomenis iš išorinių CSV failų:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | city | pulldata('cities', 'city_name', 'zip_code', ${zip_input}) |
Sintaksė
Pagrindinė pulldata() sintaksė yra:
pulldata('csv_failo_pavadinimas', 'grąžinamas_stulpelis', 'raktinis_stulpelis', ${atitinkama_reikšmė})
- ‘csv_failo_pavadinimas’: CSV failo pavadinimas (be .csv plėtinio)
- ‘grąžinamas_stulpelis’: Stulpelio pavadinimas, kuriame yra duomenys, kuriuos norite gauti
- ‘raktinis_stulpelis’: Stulpelio pavadinimas, pagal kurį atitinkama
- ${atitinkama_reikšmė}: Reikšmė, kurią reikia ieškoti raktiniame stulpelyje (dažnai kintamasis iš formos)
Svarbios pastabos
- CSV failas turi būti įkeltas kartu su jūsų XLSForm diegiant apklausą.
- Naudokite kableliais kaip atskyrikliais CSV faile, o ne kabliataškiais.
- Venkite kablelių CSV duomenų laukuose, nes jie gali sukelti apdorojimo problemų.
- pulldata() palaiko tik 1 prie 1 santykius. Jei rasta keletas atitikmenų, grąžina tik pirmą.
- Gali būti tekstų ilgio apribojimai, kuriuos galima gauti (apie 76 simboliai).
- pulldata() galite naudoti apribojimuose, kad patikrintumėte įrašus pagal CSV duomenis.
Sąlyginiai skaičiavimai
Galite naudoti if() sakinius sąlyginiams skaičiavimams:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | discount | if(${total} > 1000, ${total} * 0.1, 0) |
Geriausios praktikos
- Naudokite prasmingus skaičiavimo laukų pavadinimus formos skaitomumui pagerinti.
- Venkite pernelyg sudėtingų skaičiavimų viename lauke; jei reikia, suskaidykite juos.
- Išsamiai patikrinkite savo skaičiavimus, ypač naudojant sudėtingas formules ar išorinius duomenis.
- Atminkite, kad skaičiavimo laukai vykdomi kiekvieną kartą, kai forma įvertinama, o tai gali turėti įtakos labai sudėtingų ar didelės apimties skaičiavimų našumui.
- Naudodami pulldata(), užtikrinkite, kad jūsų CSV failai yra teisingai suformatuoti, ir išsamiai testuokite su konkrečiais duomenimis ir formos struktūra.
Apribojimai
- Skaičiavimo laukai nėra tiesiogiai redaguojami naudotojų.
- Skaičiavimo lauko rezultatas nėra iš karto matomas, nebent nurodytas rodymo lauke ar naudojamas formos logikoje.
Ar šis puslapis buvo naudingas?