تخطّي إلى المحتوى
الميزات الأسعار الوثائق جهة الاتصال تسجيل الدخول ابدأ الآن
اللغة

مرجع XLSForm

مرجع سريع لمن يبني ملف XLSForm: ما تقرؤه CommonLynk من كل ورقة، وكل عمود ومفتاح، وما لا تدعمه، وأين تختلف عن ODK وKoboToolbox وSurveyCTO.

هذه الصفحة لمن يبني ملف XLSForm لاستيراده إلى CommonLynk. وهي تبيّن ما تقرؤه المنصة من كل ورقة، وعمل كل عمود ومفتاح، وما لا تدعمه وما يحدث له، وأين تختلف CommonLynk عن ODK وKoboToolbox وSurveyCTO.

قوائم أنواع الأسئلة والدوال والأعمدة والمفاتيح وقيم احتساب الدرجات في هذه الصفحة مولَّدة من المنصة نفسها، فهي تصف ما تفعله اليوم. وللاطلاع على شرح متدرّج لبناء نموذج، راجع «بناء نموذج» و«منطق التخطي واحتساب الدرجات».

ما تقرؤه CommonLynk من الملف

يُستورد ملف ODK أو KoboToolbox أو SurveyCTO العادي كما هو. وكل ما تضيفه CommonLynk اختياري، ومسمّى على طريقة تسمية تلك الأدوات لإضافاتها، فيبقى ملف CommonLynk قابلًا للفتح فيها.

الورقةما يُقرأ منها
surveyصف لكل سؤال أو مجموعة أو تكرار.
choicesخيارات كل قائمة اختيار، وتُطابَق مع السؤال باسم القائمة دون تمييز بين الأحرف الكبيرة والصغيرة.
settingsعنوان النموذج ومعرّفه وإصداره ولغته الافتراضية.
commonlynkاختيارية. إعدادات النموذج الخاصة بـ CommonLynk: انظر «ورقة commonlynk» أدناه.
commonlynk_domainsاختيارية. تسميات مجالات احتساب الدرجات: انظر «احتساب الدرجات» أدناه.
أي ورقة أخرىلا تُقرأ. وورقة الدليل في القالب الذي تقدّمه CommonLynk واحدة منها.

في ورقة الأسئلة تُطبَّق على السؤال قيمة كل عمود من الأعمدة التالية. وتأخذ أعمدة التسمية والتلميح ورسالة القيد عمودًا لكل لغة، كما يشرح «بناء نموذج».

  • appearance
  • calculation
  • choice_filter
  • constraint
  • constraint_message
  • default
  • hint
  • label
  • name
  • read_only
  • relevant
  • repeat_count
  • required
  • type

أما أي عمود آخر يحمل قيمة في صف سؤال فيُحفظ مع ذلك السؤال: يظهر في تبويب التصميم للنموذج، ويُذكر في صفحة الاستيراد على أنه محفوظ غير مطبَّق، ويُكتب من جديد عند تصدير النموذج. فلا يضيع شيء مما كتبته في الطريق.

اسم السؤال هو هويته: يشير إليه منطق التخطي، ويطابق عليه التحديث، ويُسمّى به كل عمود في التصدير. اكتبه بأحرف لاتينية صغيرة وأرقام وشرطات سفلية، مبتدئًا بحرف؛ وتُحوَّل الأحرف الكبيرة إلى صغيرة، ويصبح أي حرف آخر شرطة سفلية. ولكل صف اسم إلا الملاحظة.

ثلاثة مسارات بثلاثة معانٍ

المسارما يفعله
«النماذج ← استيراد XLSForm»يُنشئ نموذجًا جديدًا في حالة المسودة، ويبيّن صفًا صفًا ما استُورد وما تغيّر في الطريق وما حُفظ.
«استيراد XLSForm» في تبويب التصميم لنموذجيحدّث ذلك النموذج في مكانه. تُطابَق الأسئلة بأسمائها: يحتفظ السؤال المطابَق بإجاباته، والاسم الجديد سؤال جديد، والسؤال الذي يغفله الملف يُسحب إن كانت له إجابات ويُحذف إن لم تكن. ومتى صارت للنموذج ردود احتفظ كل سؤال بنوعه.
«تصدير» في بطاقة XLSForm لنموذجيكتب النموذج في ملف. ولا يتغيّر شيء على المنصة.

لا يُطبَّق الملف المطابق لآخر ملف بُني منه النموذج مرة أخرى إلا إذا اخترت «طبّق هذا الملف مرة أخرى» عند التحديث، وبدونه يقول الاستيراد إنه لم يتغيّر شيء. اختره عندما يتحسّن مستورد المنصة وينبغي إعادة بناء النموذج من الملف نفسه. ولا يُنشئ استيراد الملف نفسه مرتين في النشاط أو المشروع نفسه شيئًا في المرة الثانية.

أنواع الأسئلة

كل نوع سؤال في CommonLynk، وأنواع XLSForm التي تُستورد على أنها هو، وما يكتبه التصدير له.

نوع السؤاليُستورد منيُكتب عند التصدير
نص قصير. ويُستورد صف الحساب نصًا قصيرًا محسوبًا، والصف المخفي نصًا قصيرًا.text
calculate
hidden
text
نص طويليُبنى في CommonLynk فقطtext + appearance multiline
رقم. ويُستورد سؤال النطاق رقمًا عاديًا.integer
decimal
range
integer
رقم هاتفيُبنى في CommonLynk فقطtext + appearance numbers
رقم هاتف محموليُبنى في CommonLynk فقطtext + appearance numbers
تاريخ. ويُستورد سؤال الوقت أو التاريخ والوقت تاريخًا، ولا يُجمع الوقت من اليوم.date
time
datetime
date
اختيار واحد، يُعرض قائمةselect_one LISTselect_one LIST
اختيار متعددselect_multiple LISTselect_multiple LIST
اختيار واحد، يُعرض قائمة منسدلةselect_one LIST + appearance minimalselect_one LIST + appearance minimal
مقياس ليكرت، من 1 إلى 5يُبنى في CommonLynk فقطselect_one cl_likert5 + appearance likert
نعم أو لا. ويُستورد سؤال الإقرار على هذا النوع.acknowledgeselect_one cl_yes_no
تقييم، من 1 إلى 10 نجوميُبنى في CommonLynk فقطinteger
مصفوفة أو شبكة. ولا شبكة في XLSForm، فيكتب التصدير ملاحظة مكانها.يُبنى في CommonLynk فقطnote
ترتيبrank LISTrank LIST
موقع جغرافي. ويُستورد سؤال المسار أو المساحة على هذا النوع.geopoint
geotrace
geoshape
geopoint
ملاحظة صوتيةaudioaudio
صورةimage
photo
image
فيديوvideovideo
رفع مستند أو ملفfilefile
مسح رمز شريطي أو رمز QRbarcodebarcode
توقيعsignaturesignature
ملاحظة: نص يظهر لمن يملأ النموذج، بلا إجابةnotenote

النوع الذي يُبنى في CommonLynk فقط يُصدَّر بأقرب صيغة له في XLSForm. فإذا استُورد من جديد نموذجًا جديدًا صار النوع الذي تُستورد به تلك الصيغة لا النوع الأصلي: يصبح سؤال ليكرت سؤال اختيار، ورقم الهاتف نصًا قصيرًا. ولا يغيّر تحديث نموذج له ردود نوع أي سؤال موجود فيه.

تُفتح المجموعات والتكرارات وتُغلق بهذه الأنواع، مكتوبة بشرطة سفلية أو بمسافة:

  • begin_group · begin group
  • end_group · end group
  • begin_repeat · begin repeat
  • end_repeat · end repeat

أي نوع آخر يُتجاوز ويُذكر في صفحة الاستيراد، ولا يُحفظ صفه. ويشمل ذلك أنواع البيانات الوصفية هذه:

  • start
  • end
  • today
  • deviceid
  • username

تسجّل CommonLynk وقت بدء كل رد ووقت إرساله ومن أرسله، دون الحاجة إليها.

ورقة commonlynk

ورقة اختيارية من عمودين بالعنوانين التاليين، ومفتاح واحد في كل صف. والقيمة التي لا تعرفها المنصة تُذكر في صفحة الاستيراد وتُترك دون تعيين لتختارها في إعدادات النموذج، ولا تُخمَّن أبدًا.

  • setting
  • value
المفتاحعند الاستيرادالمعنى
title_enيُطبَّقعنوان النموذج بالإنجليزية، ويتقدّم على عنوان النموذج في ورقة الإعدادات.
title_arيُطبَّقعنوان النموذج بالعربية.
title::<language>يُطبَّقعنوان النموذج بأي لغة أخرى تعرفها المنصة، وتُسمّى اللغة كما في عمود التسمية.
form_typeيُطبَّقنوع النموذج: واحد من أنواع النماذج المذكورة أدناه.
scoringيُطبَّقطريقة احتساب درجة النموذج: طريقة احتساب أو كلمة احتساب. انظر «احتساب الدرجات». ويُقرأ أيضًا باسم scoring_method.
pass_thresholdيُطبَّقدرجة النجاح، نسبةً مئوية.
subjectيُطبَّقالسجل الذي يخصّه النموذج: واحدة من فئات المستجيبين المذكورة أدناه. ويُقرأ أيضًا باسم respondent_type.
publicيُطبَّقنعم أو لا، مكتوبتين بالإنجليزية: هل يمكن ملء النموذج عبر رابط عام.
scale_maxيُتحقَّق منه ولا يُخزَّنأعلى درجة يمكن أن يبلغها النموذج كله. انظر «احتساب الدرجات».
scored_question_countيُتحقَّق منه ولا يُخزَّنعدد الأسئلة التي حددتها للاحتساب. ويذكر الاستيراد أي اختلاف في العدد.
cl_versionيُقرأإصدار هذه الإضافات الذي كُتب له الملف، كي يُقرأ الملف الأقدم بالمعنى الذي قُصد به. والملف الذي يخلو منه يُقرأ على أنه الإصدار 1.

هذه المفاتيح تُعدّ ملاحظاتك الخاصة: تُذكر في صفحة الاستيراد ولا تُطبَّق أبدًا، وأي مفتاح آخر تضيفه يُعامَل بالطريقة نفسها:

  • domains
  • id
  • indices
  • instance_name
  • items_per_domain
  • note
  • notes
  • purpose
  • purpose_ar
  • purpose_en
  • respondent
  • version

أنواع النماذج، للمفتاح form_type:

القيمةالمعنى
registrationتسجيل
needs_assessmentتقييم الاحتياجات
baseline_assessmentتقييم خط الأساس
endline_assessmentتقييم نهاية المشروع
pre_testاختبار قبلي
post_testاختبار بعدي
coaching_logسجل جلسات التوجيه
satisfaction_evalتقييم الرضا
feedbackنموذج الملاحظات
referralنموذج الإحالة
otherأخرى
enterprise_followupيُجاب عنها لمنشأة بعد مدة من تدريب مالكها. تقرأ لوحة التحكم الأسئلة المسمّاة ef_formalised وef_formalised_date وef_hired_since_training وef_new_staff.

فئات المستجيبين، للمفتاح subject:

القيمةالمعنى
individualالأفراد
householdالأسر
establishmentالمنشآت

أعمدة الأسئلة الخاصة بـ CommonLynk

أعمدة اختيارية في ورقة الأسئلة، قيمة واحدة لكل سؤال. ولا تُطبَّق إلا على صف محدَّد للاحتساب: فالنقاط أو مفتاح الإجابة في صف غير محتسب يُحفظان ويُذكران، ولا يُطبَّقان.

العمودالمعنى
cl::scoredنعم، بالإنجليزية، لاحتساب السؤال في الدرجة.
cl::pointsعدد صحيح. في اختبار المعارف هي النقاط التي تكسبها الإجابة الصحيحة، وفي درجة التقييم انظر «كيف يضيف السؤال إلى مجموع التقييم».
cl::correctاسم الخيار الصحيح، أو النص الصحيح، لاختبار المعارف. ويسري على أسئلة الاختيار ونعم أو لا والنص القصير.
cl::domainمفتاح مجال الاحتساب الذي يُحتسب فيه السؤال.
cl::reverseنعم، بالإنجليزية، حين تكون الإجابة الأعلى هي الأفضل. يُحتسب السؤال في مجاله ويُعرض بجانب درجة النموذج، ولا يُضاف إليها ولا يُطرح منها أبدًا.
cl::boundعلى الملاحظة: القيمة yes تعرض الملاحظة في البطاقة نفسها مع السؤال الذي يليها، وتُقرأ مع ذلك السؤال. وعند التصدير تكون ملاحظة عادية تحمل هذه العلامة، فإعادة استيراد الملف تستعيد الربط.

وأي عمود آخر يبدأ بالبادئة نفسها يُحفظ، ويُذكر على أنه محفوظ غير مطبَّق، ويُكتب من جديد عند التصدير، مثل أي عمود لا تفسّره المنصة.

احتساب الدرجات

يُحتسب للنموذج درجة بإحدى أربع طرق. حدّدها بمفتاح الاحتساب في ورقة commonlynk، أو في إعدادات النموذج.

القيمةما يفعله
noneبلا درجة.
knowledgeاختبار بمفتاح إجابات. يكسب كل سؤال محتسب نقاطه حين تطابق إجابته الإجابة الصحيحة، دون تمييز بين الأحرف الكبيرة والصغيرة. والسؤال الذي لم يُجَب لا يكسب شيئًا من نقاطه، والسؤال الذي تخطّاه منطق النموذج يُستبعد من الحد الأعلى. وفي سؤال الاختيار المتعدد لا يُقارَن إلا أول خيار محدَّد.
rating_averageمتوسط قيم الأسئلة المحتسبة، يُرجَّح كل منها بنقاطه، وهي 1 ما لم تحددها. وتقرأ النسبة المئوية كل قيمة قياسًا إلى أعلى مقياسها.
rating_sumمجموع الأسئلة المحتسبة. ويُبيَّن أدناه كيف يضيف إليه كل سؤال.

ويقبل مفتاح الاحتساب هذه الكلمات أيضًا، وتصبح كل منها طريقة احتساب:

الكلمةتصبح
itemsاختبار المعارف إذا كان لأي سؤال محتسب مفتاح إجابة، وإلا مجموع التقييم.
scalerating_average
pointsrating_sum
calculatedrating_sum
domainsrating_sum

كيف يضيف السؤال إلى مجموع التقييم

يضيف سؤال الاختيار قيمة الخيار المختار مقسومة على أعلى قيمة بين خياراته، مضروبة في نقاطه. فالخيار المسمّى 0 أو 1 أو 2 وهكذا قيمته ذلك الرقم، والخيار المسمّى «نعم» بالإنجليزية قيمته 1 والمسمّى «لا» قيمته 0، والمطابقة على الاسم لا على التسمية الظاهرة. فإذا كانت الخيارات من 0 إلى 2 والنقاط 6، أضاف السؤال 0 أو 3 أو 6. وإذا ساوت النقاط أعلى خيار أضاف السؤال القيمة نفسها: فتسعة أسئلة خياراتها من 0 إلى 3 ونقاط كل منها 3 يتراوح مجموعها بين 0 و27.

أما السؤال المُدخَل، وهو الرقم أو سؤال ليكرت أو التقييم المبني في CommonLynk، فيضيف قيمته كما أُدخلت مضروبة في نقاطه. فللنقاط نفسها معنيان إذن: أقصى ما يضيفه سؤال الاختيار، ومضاعِف لقيمة السؤال المُدخَل.

كل سؤال select_one في الملف يُستورد سؤال اختيار، أيًّا كانت خياراته أو مظهره، فقاعدة الاختيار هي التي تسري دائمًا في الملف. أما قاعدة الإدخال فتسري على أسئلة العدد الصحيح والعدد العشري، وعلى أسئلة ليكرت والتقييم المبنية في CommonLynk.

سؤال الاختيار المحتسب الذي ليست خياراته أرقامًا ولا «نعم» و«لا» لا يمكن احتساب درجته، وكذلك سؤال الاختيار المتعدد: يذكره الاستيراد، ولا يضيف شيئًا.

في مجموع التقييم ومتوسطه، يُستبعد السؤال الذي لا إجابة له، سواء تُخطّي أو تُرك فارغًا، من الدرجة ومن الحد الأعلى معًا.

المفتاح scale_max في ورقة commonlynk هو أعلى درجة يمكن أن يبلغها النموذج كله. وهو تحقّق لا إعداد: يجمع الاستيراد ما يمكن أن تبلغه الأسئلة المحتسبة ويذكر أي اختلاف. وهو غير «الحد الأقصى لمقياس التقييم» في إعدادات النموذج، فذاك أعلى مقياس السؤال الواحد، ويُستعمل للسؤال المُدخَل الذي لا حد أعلى خاصًا به.

التحديث الذي يغيّر طريقة احتساب درجة النموذج يعيد احتساب ردوده المكتملة في الاستيراد نفسه، وتُعلَّم أي قيمة مؤشر محسوبة منها لتُحسب من جديد.

المجالات والأسئلة العكسية

المجال وسم على الأسئلة لا مجموعة: فقد يُحتسب سؤالان في مجموعة واحدة في مجالين مختلفين. سمِّ مجال السؤال المحتسب في عمود المجال. ثم يخزّن كل رد مكتمل درجة لكل مجال بجانب درجة النموذج، تظهر في صفحة الرد، وتُصدَّر بجانب الدرجة، وتُكتب من جديد عند التصدير، ويمكن للمؤشر أن يقرأ مجالًا واحدًا بدلًا من الدرجة الكلية.

تعطي ورقة commonlynk_domains كل مجال تسميته: صف لكل مجال، فيه المفتاح وعمود تسمية لكل لغة، واختياريًا الحد الأعلى الذي يمكن أن يبلغه المجال، ويُتحقَّق منه كما يُتحقَّق من scale_max ولا يُخزَّن، كما في المثال أدناه. ودون هذه الورقة يُسمّى المجال باسم مجموعته إذا لم تحوِ المجموعة غيره، وإلا طلب الاستيراد تسمية. ومع الورقة، يُذكر عمود المجال الذي يسمّي مفتاحًا غير مدرج فيها ولا يُطبَّق.

keylabel::English (en)label::Arabic (ar)max
riskRisk factorsعوامل الخطر28
protProtective factorsعوامل الحماية8

السؤال المحدَّد عكسيًا يسير في الاتجاه المعاكس: الإجابة الأعلى هي الأفضل. ولا يُحتسب إلا في مجاله، ويُعرض بجانب درجة النموذج، ولا يُضاف إليها ولا يُطرح منها أبدًا، فلا تتجاوز الدرجة الكلية المعلنة. وإذا كانت كل الأسئلة المحتسبة عكسية، كوّنت هي درجة النموذج.

في المثال أعلاه، تكوّن أسئلة الخطر درجة النموذج من 28، وتُعرض أسئلة الحماية، المحدَّدة عكسيًا، بجانبها من 8.

التعبيرات

تُقرأ أعمدة الإظهار والقيد والحساب بقواعد واحدة، وتُقيَّم بالطريقة نفسها في الصفحة، وعلى الهاتف دون اتصال، وعلى الخادم. والدالة المقبولة في عمود منها مقبولة في العمودين الآخرين.

يمكن أن يستعمل التعبير إجابات أخرى وأرقامًا ونصًا بين علامتي اقتباس وعمليات حسابية ومقارنات وأداتي الوصل «و» و«أو» والأقواس. وفي القيد تمثّل النقطة الإجابة التي يُتحقَّق منها. والسؤال الذي لم يُجَب يجعل نتيجة الحساب فارغة لا صفرًا، ولاحتساب الفراغ صفرًا صرّح بذلك بدالة الشرط.

  • ${name}
  • 'text'
  • + - * div mod
  • = != > >= < <=
  • and or
  • ( )
  • .

وهذه هي الدوال التي تقيّمها:

الدالةما يفعله
if()شرط، ثم قيمة إذا تحقق، ثم قيمة إذا لم يتحقق. ويمكن أن يجمع الشرط مقارنات بـ «و» و«أو».
concat()تضم وسائطها نصًا واحدًا.
choice-label()تأخذ سؤالًا وقيمة، وتعطي تسمية ذلك الخيار في قائمة السؤال. ويُسمّى السؤال ولا تُقرأ إجابته.
count-selected()عدد الخيارات في إجابة الاختيار المتعدد، و0 إن لم تحوِ شيئًا.
false()خطأ.
index()ترتيب الإدخال الحالي في التكرار بدءًا من 1، وفارغة خارج التكرار.
not()تقلب الصواب خطأً والخطأ صوابًا.
pulldata()تأخذ ملفًا وعمودًا وعمود مفتاح ومفتاحًا، وتعطي قيمة من مجموعة بيانات مرفقة بالنموذج، من الصف الذي يساوي فيه عمود المفتاح المفتاح. تُكتب الثلاثة الأولى بين علامتي اقتباس، وإذا لم يوجد الصف أو كان المفتاح فارغًا كانت النتيجة فارغة.
regex()تأخذ نصًا ونمطًا، وتعطي صوابًا إذا وُجد النمط في النص. ويُكتب النمط بين علامتي اقتباس.
selected()تأخذ سؤالًا وقيمة، وتعطي صوابًا إذا كان ذلك الخيار بين الإجابات. والتحديد يُحتسب 1 في العمليات الحسابية.
selected-at()تأخذ سؤالًا وموضعًا، وتعطي الخيار في ذلك الموضع من إجابة الاختيار المتعدد بدءًا من 0. ومع دالة ترتيب الإدخال تختبر الإدخال الحالي في التكرار.
string-length()عدد الأحرف في نص.
today()يوم إعطاء الإجابة، بتوقيت مساحة العمل. انظر «التواريخ» أدناه.
true()صواب.
count()على التكرار: عدد الإدخالات التي تحوي إجابة. سمِّ التكرار نفسه أو أي سؤال داخله.
sum()على التكرار: مجموع سؤال داخله.
min()على التكرار: أصغر قيمة لسؤال داخله.
max()على التكرار: أكبر قيمة لسؤال داخله.
avg()على التكرار: متوسط سؤال داخله.

وفي الحساب فقط، تعطي هذه الصيغة تسمية الخيار المختار في سؤال، كما يكتبها ODK:

  • jr:choice-name(${q}, '${q}')

قراءة التكرار كاملًا

تقرأ دوال التجميع الخمس، وهي آخر خمس دوال في الجدول أعلاه، كل إدخالات التكرار من أي موضع في النموذج. سمِّ التكرار نفسه لعدّ إدخالاته، أو سؤالًا داخله لقراءة قيمه. ولا يُعدّ إلا الإدخال الذي يحوي إجابة واحدة على الأقل. وإذا لم توجد إدخالات أعطت دالتا العدّ والجمع صفرًا وأعطت البقية فراغًا، وقيمة واحدة فارغة أو غير رقمية تجعل الجمع والأصغر والأكبر والمتوسط فارغة. وتتبع القيمة الإدخالات كلما أُضيفت أو حُذفت، وتُحسب من جديد عند الإرسال. ويجب أن تسمّي دالة التجميع تكرارًا أو سؤالًا داخله، وأي اسم آخر يُذكر وتُخزَّن نتيجته فارغة.

لعدّ الإدخالات التي تطابق شرطًا، اكتب داخل التكرار حسابًا يساوي 1 عند المطابقة و0 في غيرها، ثم اجمعه بدالة الجمع بعد التكرار:

typenamecalculationالموضع
calculatee_is_femaleif(${e_sex} = 'female', 1, 0)داخل التكرار
calculatejobs_femalesum(${e_is_female})بعد التكرار
لا تكتب الشرط خارج التكرار. فهناك تكون المقارنة بسؤال داخل التكرار صوابًا إذا طابق أي إدخال، فتخبر هل يوجد واحد لكنها لا تخبر كم. هكذا تقرؤها XPath في كل أدوات XLSForm، وترفضها CommonLynk بدلًا من أن تعطي عددًا خاطئًا.

التواريخ

دالة اليوم تعطي يوم إعطاء الإجابة، بتوقيت مساحة العمل. ويُقارَن تاريخان مكتوبان بالسنة والشهر واليوم، بما في ذلك تاريخ مكتوب بين علامتي اقتباس، مقارنة صحيحة من حيث الأسبق والأحدث.

دون اتصال، دالة اليوم تعطي يوم جمع الرد لا يوم وصوله إلى الخادم. ولا يُتحقَّق من رد أُرسل مرة أخرى قياسًا إلى يوم لاحق. وإذا لم يُبلغ الهاتف عن اليوم، لا يُحكم على القيد الذي يستعمل دالة اليوم: تُحفظ الإجابة ويُعلَّم السؤال للمراجعة. وفي عمود القيمة الافتراضية، دالة اليوم تعطي يوم فتح النموذج.

ما لا تدعمه المنصة وما يحدث له

الجزء الذي لا تقيّمه المنصة يُذكر في صفحة الاستيراد، ويبقى باقي الصف ساريًا، ويُحفظ نصك الأصلي مع السؤال ويُكتب من جديد عند تصدير النموذج. وإلى أن تغيّره، يتوقف ما يحدث على العمود:

  • في عمود الإظهار يظهر السؤال دائمًا؛
  • في عمود القيد لا يُفرض ذلك الجزء، وإن ظل الحد البسيط في القيد نفسه مفروضًا؛
  • في عمود الحساب تُخزَّن القيمة فارغة.
التعبيرالسبب
now()الوقت من اليوم ليس جزءًا من القواعد. استعمل دالة اليوم للتاريخ.
date('2026-01-01')لا تُقيَّم. والتاريخ المكتوب بين علامتي اقتباس يُقارَن تاريخًا دونها.
count(${employee}[e_sex = 'female'])التصفية بين قوسين معقوفين ليست جزءًا من القواعد. عدّ المطابقات بحساب مساعد داخل التكرار، كما سبق.
sum(if(${e_sex} = 'female', 1, 0))تُرفض بدلًا من أن تعطي عددًا خاطئًا: انظر «قراءة التكرار كاملًا».
count-selected-by(${crops}, 'onion')ليست دالة في XLSForm ولا في ODK، وتُذكر كأي دالة غير معروفة.
today() + 7الحساب على التاريخ ليس جزءًا من القواعد. قارن التواريخ بدلًا من ذلك، مثل . <= today().
round(${area}, 2)وأي دالة ليست في الجدول أعلاه تُذكر بالطريقة نفسها.

ويُذكر كذلك ما لا يُدعم من البنية: يُدمج التكرار الذي داخل تكرار في التكرار المحيط به، ولا يُطبَّق شرط الإظهار على صف بداية التكرار، ويُعرض المظهر المختصر على سؤال الاختيار المتعدد قائمة مربعات اختيار. وتبيّن الاختلافات أدناه السبب.

الاختلافات عن ODK وKoboToolbox وSurveyCTO

حيث يتصرف هنا ملف يعمل في تلك الأدوات تصرفًا مختلفًا، ولماذا. وكل اختلاف مقصود ما لم يقل صفه غير ذلك.

في CommonLynkODK وKoboToolbox وSurveyCTOالسبب
لا يُعدّ إدخال التكرار إلا إذا حوى إجابة واحدة على الأقل، في دالة العدّ وفي كل دالة تجميع أخرى.يُعدّ كل إدخال أُنشئ، بما في ذلك الفارغ.فيطابق العدد حينئذ الصفوف التي يحويها التصدير والقيمة التي يقرؤها المؤشر. ولا يمكن الدفاع عن عدد 5 بجانب أربعة صفوف مصدَّرة.
التصفية بين قوسين معقوفين تُذكر، وتُحفظ كما كُتبت، ولا تُقيَّم.تُقيَّم.قواعد واحدة تقيّم كل قاعدة في الصفحة ودون اتصال وعلى الخادم، ولا تصفية فيها. وللعدّ المشروط صيغة مدعومة: الحساب المساعد.
now() date()
تُذكر الدالتان ولا تُحسبان، وكذلك الحساب على التاريخ.
تُقيَّم الثلاثة كلها.دالة today() هي التاريخ الوحيد الذي تعرّفه القواعد، حتى تعطي القاعدة الجواب نفسه متصلًا وغير متصل وعلى الخادم.
التكرار الذي داخل تكرار يُدمج في التكرار المحيط به، ويقول الاستيراد ذلك.تتداخل التكرارات.التكرار هنا مستوى واحد عن قصد. والدمج يُبقي كل سؤال وإجاباته، فلا يسقط شيء.
لا يُطبَّق شرط الإظهار على صف بداية التكرار، ويقول الاستيراد ذلك.يُظهر الشرط التكرار كله أو يخفيه.غير مدعوم بعد. ضع الشرط على مجموعة تحيط بالتكرار، أو على الأسئلة داخله، فكلاهما يُطبَّق.
المظهر المختصر على سؤال الاختيار المتعدد يُعرض قائمة مربعات اختيار، ويقول الاستيراد ذلك.قائمة منسدلة مدمجة من مربعات الاختيار.القائمة المنسدلة هنا تحمل إجابة واحدة، ورسم سؤال الاختيار المتعدد بها يُضيّع كل خيار عدا الأول.
تُتجاوز أنواع البيانات الوصفية المذكورة في «أنواع الأسئلة»، وهي وقت البدء ووقت الانتهاء واليوم ومعرّف الجهاز واسم المستخدم، ويذكر الاستيراد كلًا منها.تُسجَّل مع كل إرسال.تسجّل CommonLynk في كل رد وقت بدئه ووقت إرساله ومن أرسله.
يُستورد سؤال الوقت أو التاريخ والوقت تاريخًا.للوقت نوع مستقل.غير مدعوم بعد: لا يوجد نوع سؤال للوقت.
احتساب الدرجات جزء من النموذج: طريقة، ونقاط لكل سؤال، ومجالات، وأسئلة عكسية، تُخزَّن في كل رد، وتُصدَّر، ويُعاد احتسابها حين يتغيّر النموذج، ويقرؤها المؤشر.لا نموذج لاحتساب الدرجات، فالدرجة صف حساب يكتبه المؤلف.الدرجة المخزّنة قيمة واحدة يقرؤها كل تقرير وتصدير ومؤشر بالطريقة نفسها. وليس لدى تلك الأدوات نموذج احتساب يُحتذى، فصُمّم هذا النموذج انطلاقًا من الأدوات التي يحتسب درجاتها.
يُرفض النموذج الذي فيه تكرار على الرابط العام المجهول، أما الرابط الخاص بكل مستجيب فيعرض التكرارات كاملة.تعرض نماذج الويب التكرارات.صفحة الرابط العام لا تعرض أي تكرار، فتضيع الإدخالات دون تنبيه. والرفض أسلم من فقدان البيانات.

سلوك العمل دون اتصال الذي يغيّر طريقة البناء

  • يُتحقَّق من القيد على الهاتف كلما تغيّرت الإجابة، وقبل الشاشة التالية، وعند الإرسال، حتى دون اتصال، ثم يتحقق منه الخادم مرة أخرى.
  • تتبع دالة اليوم القواعد المذكورة في «التواريخ»: فهي دون اتصال يوم إعطاء الإجابة، لا يوم وصول الرد إلى الخادم.
  • لا ينتقل إلى هواتف الجمع مع النموذج إلا الأعمدة التي تقرؤها دالة سحب البيانات فيه. أرفق مجموعة البيانات قبل النشر: فالنموذج الذي تنقصه مجموعة بياناته لا يمكن نشره ولا تفعيله. واستبدال مجموعة البيانات ينشر إصدارًا جديدًا من النموذج، وتحتفظ الردود بالبيانات التي مُلئت بها.
  • السؤال المسمّى باسم حقل من حقول ملف فئة المستجيبين في النموذج يُملأ مسبقًا من سجل المستجيب، ثم ينتقل ذلك الحقل إلى هواتف الجمع لكل من في القائمة. غيّر اسم السؤال إن لم يكن بحاجة إلى ملء مسبق.