On this page
calculate
Calculate
Οι ερωτήσεις calculate στα XLSForms και στο rtSurvey χρησιμοποιούνται για την εκτέλεση υπολογισμών βάσει άλλων πεδίων ή τιμών της φόρμας σας. Αυτές οι ερωτήσεις δεν εμφανίζονται στον χρήστη αλλά εκτελούνται στο παρασκήνιο, αποθηκεύοντας τα αποτελέσματά τους για μεταγενέστερη χρήση ή υποβολή.
Σύνταξη
Στο XLSForm, μια ερώτηση calculate ορίζεται ως εξής:
| type | name | label | calculation |
|---|---|---|---|
| calculate | calc_q1 | ${q1} + ${q2} |
- type: Πάντα “calculate” για αυτόν τον τύπο ερώτησης.
- name: Μοναδικό όνομα για την ερώτηση calculate.
- label: Συνήθως αφήνεται κενό καθώς οι ερωτήσεις calculate δεν εμφανίζονται στους χρήστες.
- calculation: Ο τύπος προς αξιολόγηση.
Χρήσεις
Οι ερωτήσεις calculate χρησιμοποιούνται συνήθως για:
- Εκτέλεση αριθμητικών πράξεων
- Συνένωση συμβολοσειρών
- Εφαρμογή σύνθετης λογικής ή συναρτήσεων
- Αποθήκευση ενδιάμεσων αποτελεσμάτων για μεταγενέστερη χρήση
Παραδείγματα
Βασική αριθμητική
| type | name | calculation |
|-----------|----------|-------------|
| calculate | total | ${price} * ${quantity} |
Συνένωση συμβολοσειρών
| type | name | calculation |
|-----------|----------|-------------|
| calculate | full_name| concat(${first_name}, ' ', ${last_name}) |
Χρήση συναρτήσεων
| type | name | calculation |
|-----------|----------|-------------|
| calculate | age | int((today() - ${date_of_birth}) / 365.25) |
Προχωρημένη χρήση στο rtSurvey
Συνάρτηση pulldata()
Το rtSurvey υποστηρίζει τη συνάρτηση pulldata() σε πεδία calculate, επιτρέποντάς σας να ανακτάτε δεδομένα από εξωτερικά αρχεία CSV:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | city | pulldata('cities', 'city_name', 'zip_code', ${zip_input}) |
Σύνταξη
Η βασική σύνταξη για pulldata() είναι:
pulldata('csv_filename', 'column_to_return', 'key_column', ${matching_value})
- ‘csv_filename’: Όνομα του αρχείου CSV (χωρίς επέκταση .csv)
- ‘column_to_return’: Όνομα στήλης που περιέχει τα δεδομένα που θέλετε να ανακτήσετε
- ‘key_column’: Όνομα στήλης για αντιστοίχιση
- ${matching_value}: Τιμή για αναζήτηση στη στήλη κλειδιού (συχνά μεταβλητή από τη φόρμα)
Σημαντικές σημειώσεις
- Το αρχείο CSV πρέπει να μεταφορτωθεί μαζί με το XLSForm σας κατά την ανάπτυξη της έρευνας.
- Χρησιμοποιήστε κόμμα ως διαχωριστή στο αρχείο CSV, όχι ερωτηματικά.
- Αποφύγετε κόμματα εντός πεδίων δεδομένων CSV, καθώς μπορεί να προκαλέσουν προβλήματα ανάλυσης.
- Η pulldata() υποστηρίζει μόνο σχέσεις 1-προς-1. Εάν βρεθούν πολλαπλές αντιστοιχίσεις, επιστρέφει μόνο την πρώτη.
- Ενδέχεται να υπάρχουν περιορισμοί στο μήκος κειμένου που μπορεί να ανακτηθεί (περίπου 76 χαρακτήρες).
- Μπορείτε να χρησιμοποιήσετε pulldata() σε περιορισμούς για επικύρωση καταχωρήσεων έναντι δεδομένων CSV.
Υπό συνθήκη υπολογισμοί
Μπορείτε να χρησιμοποιήσετε εντολές if() για υπό συνθήκη υπολογισμούς:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | discount | if(${total} > 1000, ${total} * 0.1, 0) |
Βέλτιστες πρακτικές
- Χρησιμοποιήστε ουσιαστικά ονόματα για πεδία calculate για βελτίωση αναγνωσιμότητας φόρμας.
- Αποφύγετε υπερβολικά σύνθετους υπολογισμούς σε ένα πεδίο· αναλύστε τους εάν είναι απαραίτητο.
- Δοκιμάστε τους υπολογισμούς σας διεξοδικά, ειδικά κατά τη χρήση σύνθετων τύπων ή εξωτερικών δεδομένων.
- Θυμηθείτε ότι τα πεδία calculate εκτελούνται κάθε φορά που αξιολογείται η φόρμα, γεγονός που μπορεί να επηρεάσει την απόδοση.
- Κατά τη χρήση pulldata(), βεβαιωθείτε ότι τα αρχεία CSV έχουν σωστή μορφοποίηση και δοκιμάστε διεξοδικά.
Περιορισμοί
- Τα πεδία calculate δεν είναι άμεσα επεξεργάσιμα από χρήστες.
- Το αποτέλεσμα ενός πεδίου calculate δεν είναι άμεσα ορατό εκτός εάν αναφερθεί σε πεδίο εμφάνισης ή χρησιμοποιηθεί σε λογική φόρμας.
Ήταν χρήσιμη αυτή η σελίδα;