المفاهيم الأساسية
نظرة عامة على تصميم النماذج
ما هو XLSForm؟
يستخدم rtSurvey نسخة موسّعة من معيار XLSForm لتصميم النماذج، وتوفر ميزات قوية لإنشاء استطلاعات متطورة. سيعرّفك هذا الدليل على المفاهيم الأساسية لتصميم النماذج في rtSurvey، بدءاً من بنية XLSForm الأساسية وحتى الميزات المتقدمة الخاصة بـ rtSurvey.
بفضل XLSForms، يمكنك تأليف النماذج بتنسيق سهل القراءة باستخدام أداة Excel المألوفة، مما يجعلها في متناول الجميع تقريباً. يُتيح هذا المعيار تبادل النماذج والتعاون في تأليفها بسهولة.
وبينما يُعدّ XLSForms مناسباً للمبتدئين، إلا أنه يُتيح للمستخدمين المتمرسين إنشاء نماذج معقدة.
يوفر rtSurvey طريقة متسقة لدمج الوظائف المتقدمة كمنطق التخطي في النماذج عبر منصات جمع البيانات المختلفة عبر الويب والجوال.
بنية XLSForm
يتكون XLSForm عادةً من ورقتَي عمل رئيسيتين:
- survey: تُحدد بنية النموذج ومحتواه.
- choices: تُحدد خيارات الإجابة لأسئلة الاختيار من متعدد.
ويمكن إضافة ورقة عمل settings اختيارية لتوفير مواصفات إضافية للنموذج.
تجدر الإشارة إلى أن الأعمدة الإلزامية في ورقتَي survey وchoices يجب أن تكون موجودة لكي يعمل النموذج بشكل صحيح. أما الأعمدة الاختيارية في كلتا الورقتين فتوفر تحكماً إضافياً في سلوك كل إدخال في النموذج، لكنها ليست ضرورية.
يمكن أن تظهر الأعمدة في مصنف Excel بأي ترتيب، ويمكن ترك الأعمدة الاختيارية فارغة. ومع ذلك، من الضروري استخدام التركيب الصياغي الدقيق واصطلاحات التسمية المحددة في وثائق XLSForm لكي يعمل النموذج بشكل صحيح.
ورقة عمل survey
ورقة عمل survey هي المكان الذي تُحدد فيه بنية نموذجك وتوفر المحتوى. كل صف في ورقة عمل survey يمثل سؤالاً أو عنصراً في نموذجك. الأعمدة التالية إلزامية في ورقة عمل survey:
type: يُحدد نوع الإدخال المتوقع للسؤال.name: يُحدد اسم المتغير الفريد لذلك الإدخال. يجب أن تبدأ الأسماء بحرف أو شرطة سفلية ويمكن أن تحتوي فقط على حروف وأرقام وشرطات وشرطات سفلية ونقاط. الأسماء حساسة لحالة الأحرف.label: يحتوي على النص الفعلي الذي تراه للسؤال في النموذج.
| type | name | label |
|---|---|---|
| today | today | |
| select_one gender | gender | Respondent’s gender? |
| integer | age | Respondent’s age? |
ورقة عمل choices
تُستخدم ورقة عمل choices لتحديد خيارات الإجابة لأسئلة الاختيار من متعدد.
كل صف يمثل خيار إجابة. الأعمدة التالية إلزامية في ورقة عمل choices:
list_name: يجمع معاً مجموعة من خيارات الإجابة المترابطة.name: يُحدد اسم المتغير الفريد لخيار الإجابة.label: يعرض خيار الإجابة تماماً كما تريد ظهوره في النموذج.
| list_name | name | label |
|---|---|---|
| gender | transgender | Transgender |
| gender | female | Female |
| gender | male | Male |
| gender | other | Other |
يمكن أن تظهر الأعمدة التي تضيفها إلى مصنف Excel، سواء أكانت إلزامية أم اختيارية، بأي ترتيب. يمكن حذف الأعمدة الاختيارية كلياً. يمكن ترك الصفوف أو الأعمدة فارغة لتحسين إمكانية القراءة، لكن البيانات التي تظهر بعد 20 عموداً أو صفاً متجاوراً فارغاً في الورقة لن تتم معالجتها. يتم تجاهل جميع تنسيقات ملفات .xlsx، لذا يمكنك استخدام خطوط الفصل والتظليل وتنسيقات الخطوط الأخرى لجعل النموذج أكثر قابلية للقراءة.
شيء واحد يجب مراعاته عند تأليف النماذج في Excel: يجب أن تكون الصياغة التي تستخدمها دقيقة. على سبيل المثال، إذا كتبت Choices أو choice بدلاً من choices، فلن يعمل النموذج.
ورقة عمل settings
ورقة عمل settings اختيارية ولكنها تتيح تحديد البيانات الوصفية وسلوك النموذج على مستوى النموذج. الأعمدة الشائعة في ورقة عمل settings تشمل:
| العمود | الوصف |
|---|---|
| form_title | عنوان النموذج كما يظهر للمستخدمين |
| form_id | معرّف فريد للنموذج، يُستخدم في إدارة البيانات واستدعاءات API |
| default_language | رمز اللغة الافتراضية للنماذج متعددة اللغات (مثل ’en’ للإنجليزية) |
| version | رقم إصدار النموذج، مفيد لتتبع التغييرات |
| instance_name | تعبير لإنشاء اسم فريد لكل إرسال نموذج |
| generation | عدد صحيح يُحدد جيل النموذج. قم بزيادته للتغييرات الهيكلية |
| family | معرّف لتجميع النماذج المرتبطة عبر التغييرات الهيكلية |
يمكن أن تتضمن ورقة عمل settings في rtSurvey أيضاً إعدادات إضافية خاصة بالوظائف الموسّعة لـ rtSurvey. راجع وثائق rtSurvey للاطلاع على القائمة الكاملة للإعدادات المدعومة.
المكونات الرئيسية لورقة عمل Survey
ورقة عمل survey هي جوهر تصميم النموذج. فيما يلي نظرة عامة على مكوناتها الرئيسية:
| المكون | الوصف |
|---|---|
| type | يُحدد نوع السؤال (مثل text, integer, select_one) |
| name | معرّف فريد للسؤال |
| label | النص الذي يُعرض للمستجيب |
| hint | إرشادات إضافية للمستجيب |
| appearance | يُعدّل طريقة عرض السؤال |
| relevant | يُحدد متى يجب طرح السؤال (منطق التخطي) |
| constraint | يُتحقق من صحة الإجابة |
| calculation | يحسب القيم بناءً على إجابات أخرى |
| required | يُحدد ما إذا كان يجب الإجابة على السؤال |
يؤدي كل من هذه المكونات دوراً حاسماً في إنشاء استطلاعات فعّالة وكفؤة.
أنواع الأسئلة
يدعم XLSForm عدداً من أنواع الأسئلة. هذه مجرد بعض الخيارات التي يمكنك إدخالها في عمود type في ورقة عمل survey في XLSForm:
| نوع السؤال | إدخال الإجابة |
|---|---|
| integer | إدخال عدد صحيح (أي رقم كامل). |
| decimal | إدخال رقم عشري. |
| range | إدخال نطاق (بما في ذلك التقييم) |
| text | إجابة نصية حرة. |
| select_one [options] | سؤال اختيار من متعدد؛ يمكن اختيار إجابة واحدة فقط. |
| select_multiple [options] | سؤال اختيار من متعدد؛ يمكن اختيار إجابات متعددة. |
| select_one_from_file [file] | اختيار من متعدد من ملف؛ يمكن اختيار إجابة واحدة فقط. |
| select_multiple_from_file [file] | اختيار من متعدد من ملف؛ يمكن اختيار إجابات متعددة. |
| rank [options] | سؤال ترتيب؛ ترتيب قائمة. |
| note | عرض ملاحظة على الشاشة، لا يأخذ أي إدخال. اختصار لـ type=text مع readonly=true. |
| geopoint | جمع إحداثية GPS واحدة. |
| geotrace | تسجيل خط من إحداثيتين GPS أو أكثر. |
| geoshape | تسجيل مضلع من إحداثيات GPS متعددة؛ النقطة الأخيرة هي نفسها النقطة الأولى. |
| date | إدخال تاريخ. |
| time | إدخال وقت. |
| dateTime | يقبل إدخال تاريخ ووقت. |
| image | التقاط صورة أو تحميل ملف صورة. |
| audio | التقاط تسجيل صوتي أو تحميل ملف صوتي. |
| background-audio | يتم تسجيل الصوت في الخلفية أثناء ملء النموذج. |
| video | التقاط تسجيل فيديو أو تحميل ملف فيديو. |
| file | إدخال ملف عام (txt, pdf, xls, xlsx, doc, docx, rtf, zip) |
| barcode | مسح رمز شريطي، يتطلب تثبيت تطبيق ماسح الرمز الشريطي. |
| calculate | إجراء حساب؛ راجع قسم الحساب أدناه. |
| acknowledge | موجه إقرار يضبط القيمة على “OK” عند تحديده. |
| hidden | حقل بدون عنصر واجهة مستخدم مرتبط يمكن استخدامه لتخزين ثابت |
| xml-external | يضيف مرجعاً إلى ملف بيانات XML خارجي |
التسميات
التسميات هي النصوص التي تُعرض للمستجيبين لكل سؤال. وهي ضرورية للتواصل الواضح في الاستطلاعات.
- الاستخدام الأساسي: في عمود
label، أدخل نص السؤال. - لغات متعددة: استخدم أعمدة إضافية مثل
label::Englishوlabel::Frenchللاستطلاعات متعددة اللغات. - التنسيق: يدعم rtSurvey تنسيق HTML الأساسي في التسميات للتأكيد أو الهيكلة.
مثال:
| type | name | label | label::French |
|------|------|-------|---------------|
| text | name | What is your name? | Quel est votre nom? |
التلميحات
تُوفر التلميحات إرشادات إضافية للمستجيبين دون إثقال نص السؤال الرئيسي.
- الاستخدام: أضف التلميحات في عمود
hint. - الرؤية: تُعرض التلميحات عادةً أسفل نص السؤال الرئيسي.
- متعدد اللغات: مثل التسميات، يمكن تحديد التلميحات لعدة لغات باستخدام أعمدة
hint::Language.
مثال:
| type | name | label | hint |
|------|------|-------|------|
| integer | age | How old are you? | Please enter your age in years |
المظهر
يتيح عمود appearance في rtSurvey تخصيص طريقة عرض الأسئلة.
- الخيارات القياسية: تشمل ‘multiline’ للنصوص، و’horizontal’ لأسئلة الاختيار.
- امتدادات rtSurvey:
- إدخال الوقت: خيارات عرض ساعة متنوعة (مثل
inline,inline-1line) - تخصيص الألوان: استخدم دالة
colors()لتغيير ألوان الأيقونات
- إدخال الوقت: خيارات عرض ساعة متنوعة (مثل
مثال:
| type | name | label | appearance |
|------|------|-------|------------|
| text | time | Enter time | inline-[%H:%M] |
الملاءمة
يُطبّق عمود relevant منطق التخطي، ويُحدد متى يجب عرض سؤال ما.
- الصياغة: استخدم تعبيرات XPath لتحديد الشروط.
- المتغيرات: استشر أسماء الأسئلة الأخرى باستخدام
${question_name}.
مثال:
| type | name | label | relevant |
|------|------|-------|----------|
| text | allergies | List allergies | ${has_allergies} = 'yes' |
الإلزامية
يُحدد عمود required ما إذا كان يجب الإجابة على السؤال.
- الاستخدام الأساسي: استخدم ‘yes’ أو ’true’ لجعل السؤال إلزامياً.
- متقدم: يمكن استخدام تعبيرات للإلزامية الشرطية.
مثال:
| type | name | label | required |
|------|------|-------|----------|
| text | email | Email address | yes |
التكرارات
تسمح التكرارات بالإجابة على مجموعة من الأسئلة عدة مرات.
- الاستخدام: استخدم صفوف
begin repeatوend repeatلتحديد مجموعة متكررة. - التسمية: أعطِ كل مجموعة تكرار اسماً فريداً.
مثال:
| type | name | label |
|------|------|-------|
| begin repeat | household_member | Household member |
| text | member_name | Name |
| integer | member_age | Age |
| end repeat | | |
الوسائط
يدعم rtSurvey أنواعاً متنوعة من الوسائط في الاستطلاعات، بما في ذلك الصور والصوت والفيديو.
- أنواع الأسئلة: استخدم ‘image’ أو ‘audio’ أو ‘video’ في عمود type.
- الوسائط في التسميات: استشر ملفات الوسائط في التسميات باستخدام علامات HTML.
مثال:
| type | name | label |
|------|------|-------|
| image | house_photo | Take a photo of the house |
| note | | <img src="logo.jpg" /> Welcome to the survey |
للقراءة فقط
تعرض أسئلة القراءة فقط المعلومات دون السماح للمستخدم بالإدخال.
- الاستخدام: أضف ‘readonly’ إلى عمود
appearance. - الحسابات: تُستخدم كثيراً مع نوع calculate لعرض القيم المحسوبة.
مثال:
| type | name | label | appearance | calculation |
|------|------|-------|------------|-------------|
| calculate | bmi | BMI | readonly | ${weight} / (${height} * ${height}) |
امتدادات rtSurvey
يُوسّع rtSurvey معيار XLSForm بدعم إمكانيات إضافية مثل grid layout وتنسيق html والعديد من الأدوات الجديدة.
تخطيط الشبكة
يتيح rtSurvey لنموذجك محاكاة مظهر الاستطلاعات الورقية التقليدية عن طريق ضغط أسئلة متعددة في صف واحد.