On this page
calculate
Calculate
Otázky calculate v XLSForms a rtSurvey sa používajú na vykonávanie výpočtov na základe iných polí alebo hodnôt vo vašom formulári. Tieto otázky sa nezobrazujú používateľovi, ale namiesto toho bežia na pozadí a ukladajú svoje výsledky na neskoršie použitie alebo odoslanie.
Syntax
V XLSForm je otázka calculate definovaná nasledovne:
| type | name | label | calculation |
|---|---|---|---|
| calculate | calc_q1 | ${q1} + ${q2} |
- type: Vždy „calculate" pre tento typ otázky.
- name: Jedinečný názov pre otázku calculate.
- label: Zvyčajne prázdne, keďže otázky calculate sa nezobrazujú používateľom.
- calculation: Vzorec, ktorý sa má vyhodnotiť.
Použitia
Otázky calculate sa bežne používajú pre:
- Vykonávanie aritmetických operácií
- Spájanie reťazcov
- Aplikovanie komplexnej logiky alebo funkcií
- Ukladanie medzivýsledkov na neskoršie použitie
Príklady
Základná aritmetika
| type | name | calculation |
|-----------|----------|-------------|
| calculate | total | ${price} * ${quantity} |
Spájanie reťazcov
| type | name | calculation |
|-----------|----------|-------------|
| calculate | full_name| concat(${first_name}, ' ', ${last_name}) |
Použitie funkcií
| type | name | calculation |
|-----------|----------|-------------|
| calculate | age | int((today() - ${date_of_birth}) / 365.25) |
Pokročilé použitie v rtSurvey
Funkcia pulldata()
rtSurvey podporuje funkciu pulldata() v poliach calculate, čo vám umožňuje načítavať dáta z externých CSV súborov:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | city | pulldata('cities', 'city_name', 'zip_code', ${zip_input}) |
Syntax
Základná syntax pre pulldata() je:
pulldata('csv_filename', 'column_to_return', 'key_column', ${matching_value})
- ‘csv_filename’: Názov CSV súboru (bez prípony .csv)
- ‘column_to_return’: Názov stĺpca obsahujúceho dáta, ktoré chcete načítať
- ‘key_column’: Názov stĺpca, s ktorým sa má zhodovať
- ${matching_value}: Hodnota, ktorú treba vyhľadať v kľúčovom stĺpci (často premenná z formulára)
Dôležité poznámky
- CSV súbor musí byť nahraný spolu s vaším XLSForm pri nasadení prieskumu.
- V CSV súbore používajte čiarky ako oddeľovače, nie bodkočiarky.
- Vyhnite sa čiarkam vo vnútri dátových polí vášho CSV, keďže môžu spôsobiť problémy s parsovaním.
- pulldata() podporuje iba vzťahy 1-k-1. Ak sa nájde viacero zhôd, vráti iba prvú.
- Môžu existovať obmedzenia dĺžky textu, ktorý možno načítať (približne 76 znakov).
- pulldata() môžete použiť v obmedzeniach na overenie záznamov voči dátam CSV.
Podmienené výpočty
Pre podmienené výpočty môžete použiť príkazy if():
| type | name | calculation |
|-----------|----------|-------------|
| calculate | discount | if(${total} > 1000, ${total} * 0.1, 0) |
Najlepšie postupy
- Používajte zmysluplné názvy pre polia calculate na zlepšenie čitateľnosti formulára.
- Vyhýbajte sa príliš zložitým výpočtom v jednom poli; v prípade potreby ich rozdeľte.
- Dôkladne testujte svoje výpočty, najmä pri použití komplexných vzorcov alebo externých dát.
- Pamätajte, že polia calculate sa spúšťajú pri každom vyhodnotení formulára, čo môže ovplyvniť výkon pri veľmi zložitých alebo početných výpočtoch.
- Pri použití pulldata() uistite sa, že vaše CSV súbory sú správne naformátované a dôkladne testujte s vašou konkrétnou štruktúrou dát a formulára.
Obmedzenia
- Polia calculate nie sú priamo editovateľné používateľmi.
- Výsledok poľa calculate nie je okamžite viditeľný, pokiaľ nie je odkazovaný v zobrazovacom poli alebo použitý v logike formulára.
Bola táto stránka užitočná?