On this page
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}: القيمة للبحث عنها في عمود المفتاح
الحسابات الشرطية
يمكنك استخدام عبارات if() للحسابات الشرطية:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | discount | if(${total} > 1000, ${total} * 0.1, 0) |
أفضل الممارسات
- استخدم أسماء ذات معنى لحقول calculate لتحسين قابلية قراءة النموذج.
- تجنب الحسابات المعقدة جداً في حقل واحد؛ قسّمها إذا لزم الأمر.
- اختبر حساباتك بشكل شامل، خاصةً عند استخدام صيغ معقدة أو بيانات خارجية.
القيود
- حقول calculate غير قابلة للتعديل مباشرةً من قِبَل المستخدمين.
- نتيجة حقل calculate غير مرئية فوراً ما لم تتم الإشارة إليها في حقل عرض أو تُستخدم في منطق النموذج.
هل كانت هذه الصفحة مفيدة؟