On this page
calculate
Calculate
Questions calculate ក្នុង XLSForms និង rtSurvey ប្រើ ដើម្បី perform computations ផ្អែកលើ fields ឬ values ផ្សេងទៀតក្នុង form ។ Questions ទាំងនេះមិន display ដល់ user ប៉ុន្តែ run ក្នុង background ដោយ storing results សម្រាប់ later use ឬ submission។
Syntax
ក្នុង XLSForm, calculate question ត្រូវបានកំណត់ដូចខាងក្រោម:
| type | name | label | calculation |
|---|---|---|---|
| calculate | calc_q1 | ${q1} + ${q2} |
- type: ជានិច្ច “calculate” សម្រាប់ប្រភេទ question នេះ។
- name: ឈ្មោះ unique សម្រាប់ calculate question។
- label: ជាធម្មតា blank ដោយសារ calculate questions មិន display ដល់ users។
- calculation: formula ដើម្បី evaluate។
ការប្រើប្រាស់
Calculate questions ប្រើជាទូទៅសម្រាប់:
- ការ performing arithmetic operations
- ការ concatenating strings
- ការ applying complex logic ឬ functions
- ការ storing intermediate results សម្រាប់ later use
ឧទាហរណ៍
Arithmetic មូលដ្ឋាន
| type | name | calculation |
|-----------|----------|-------------|
| calculate | total | ${price} * ${quantity} |
String Concatenation
| type | name | calculation |
|-----------|----------|-------------|
| calculate | full_name| concat(${first_name}, ' ', ${last_name}) |
ការប្រើ Functions
| type | name | calculation |
|-----------|----------|-------------|
| calculate | age | int((today() - ${date_of_birth}) / 365.25) |
ការប្រើប្រាស់ High ក្នុង rtSurvey
Function pulldata()
rtSurvey គាំទ្រ function pulldata() ក្នុង calculate fields ដោយអនុញ្ញាតឱ្យ retrieve data ពី CSV files ខាងក្រៅ:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | city | pulldata('cities', 'city_name', 'zip_code', ${zip_input}) |
Syntax
syntax មូលដ្ឋានសម្រាប់ pulldata() គឺ:
pulldata('csv_filename', 'column_to_return', 'key_column', ${matching_value})
- ‘csv_filename’: ឈ្មោះ CSV file (គ្មាន .csv extension)
- ‘column_to_return’: ឈ្មោះជួរដែលផ្ទុក data ដែលអ្នកចង់ pull
- ‘key_column’: ឈ្មោះជួរ ដើម្បី match against
- ${matching_value}: Value ដើម្បី look up ក្នុង key column (ជាញឹកញាប់ variable ពី form)
Notes សំខាន់
- CSV file ត្រូវតែ upload ជាមួយ XLSForm នៅពេល deploy ការស្ទង់មតិ។
- ប្រើ commas ជា separators ក្នុង CSV file, មិនមែន semicolons។
- ជៀសវាង commas ក្នុង data fields CSV, ដោយ ពួកវាអាចបណ្តាល parsing issues។
- pulldata() គាំទ្រ 1-to-1 relationships តែប៉ុណ្ណោះ។ ប្រសិនបើ matches ច្រើននត្រូវបានរកឃើញ វា returns មួយដំបូងតែប៉ុណ្ណោះ។
- ប្រហែលមាន limitations លើ text length ដែលអាច pull (ប្រហែល 76 characters)។
- អ្នកអាចប្រើ pulldata() ក្នុង constraints ដើម្បី validate entries against CSV data។
Conditional Calculations
អ្នកអាចប្រើ if() statements សម្រាប់ conditional calculations:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | discount | if(${total} > 1000, ${total} * 0.1, 0) |
ការអនុវត្តល្អ
- ប្រើ meaningful names សម្រាប់ calculate fields ដើម្បីធ្វើឱ្យ form readability ប្រសើរ។
- ជៀសវាង calculations ស្មុគ្រស្មាញ ហួសហេតុ ក្នុង field តែមួយ; break them down ប្រសិនបើចាំបាច់។
- Test calculations ហ្មត់ចត់ ជាពិសេសពេលប្រើ formulas ស្មុគ្រស្មាញ ឬ external data។
- ចងចាំ calculate fields run រៀងរាល់ពេល form ត្រូវបាន evaluated ដែលអាច impact performance សម្រាប់ calculations ស្មុគ្រស្មាញ ឬ ច្រើនណាស់។
- ពេលប្រើ pulldata() ធានា CSV files format ត្រឹមត្រូវ ហើយ test ហ្មត់ចត់ ជាមួយ data ជាក់ស្តែង ហើយ form structure ។
ការដាក់កំហិត
- Calculate fields មិនអាច edit ដោយ users ដោយផ្ទាល់។
- លទ្ធផល calculate field មិន visible ភ្លាមៗ លើក លែងតែ referenced ក្នុង display field ឬ ប្រើក្នុង form logic។
តើទំព័រនេះមានប្រយោជន៍ទេ?