تكرار

يمكن لـ XLSForm تكرار مجموعة من الأسئلة مرات عديدة. تشمل أمثلة كيفية استخدام التكرارات ما يلي:

  • التقاط الإجابات المتعددة لنفس السؤال في استطلاع واحد.
  • التقاط مجموعات منفصلة أصغر من السجلات، مثل اسم وعمر وجنس كل شخص في المنزل.
  • التقاط العديد من أسئلة الخرائط في استطلاع واحد.
تكرار لتوفير العديد من الإجابات لسؤال فردي

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

استخدام التكرارات

لتكرار مجموعة من الأسئلة في Survey123 لالتقاط العديد من الإجابات، أكمل الخطوات التالية في علامة تبويب الاستطلاع من جدول البيانات:

  1. في الصف الذي تريد بدء التكرار فيه، اكتب بدء التكرار في عمود النوع.
  2. قم بتوفير اسم للتكرار في عمود الاسم.
  3. في الصفوف أدنى هذا الإدخال، أدخل الأسئلة التي تريد تضمينها في التكرار الخاص بك.
  4. فورًا بعد الأسئلة، اكتب إنهاء التكرار في عمود النوع.

يتم إنشاء مجموعة من الأسئلة في الاستطلاع الخاص بك الذي يمكنك إضافته بشكل متكرر إلى نتائج الاستطلاع. لا يوجد قيد افتراضيًا على عدد المرات الممكنة لتكرار الأسئلة.

يمكن عرض مواقع النقاط من أول سؤال نقطة جغرافية في تكرار على أي خريطة في استطلاعك. لمزيد من المعلومات، راجع تراكبات النقاط على الخرائط.

تقييد عدد سجلات التكرار

لتحديد عدد التكرارات في Survey123، قم بتعيين عدد التكرارات عن طرق إكمال الخطوات التالية:

  1. في الصف الذي تريد بدء التكرار فيه، اكتب بدء التكرار في عمود النوع في علامة تبويب الاستطلاع.
  2. قم بتوفير قيمة عددية لعدد التكرارات في العمود repeat_count. يمكنك أيضًا تقديم اسم سؤال أو حساب يرجع قيمة رقمية.
  3. قم بتوفير اسم للتكرار في عمود الاسم.
  4. في الصفوف أدنى هذا الإدخال، أدخل الأسئلة التي تريد تضمينها في التكرار الخاص بك.
  5. في الصف الأخير، اكتب إنهاء التكرار في عمود النوع.

عندما يقوم المستخدم بفتح الاستطلاع، يتم بالفعل إنشاء عدد التكرارات المعينة في العمود repeat_count. يتعذر على المستخدم إنشاء تكرارات أو حذفها.

يجب على المستخدم التنقل عبر جميع التكرارات المحددة بقيمة repeat_count قبل إرسال الاستجابة للاستطلاع، وإلا فلن يتم إرسال جميع السجلات المكررة. لضمان تقديم كل التكرارات، يمكنك صياغة الأسئلة المطلوبة في التكرارات. كن على علم أن الأسئلة في التكرارات ذات الصلة أو عبارة مطلوبة بشكل مشروط لا يتم تقييمها عند التقديم.

ملاحظة:‏

يختلف سلوك تكرار ما مع عدد تكرار متغير على أساس ما إذا كان المستخدم يُنشئ ردًا على استطلاع أو تحرير الاستطلاع المقدم سابقًا.

عند إنشاء رد على استطلاع، يكون لعدد التكرار لتكرار ما تم تقليله بالفعل زرًا في أعلى التكرار لحذف كل السجلات أعلى عدد التكرار الجديد الذي يشتمل على بيانات بداخله؛ يتم حذف السجلات الفارغة تلقائيًا. بغض النظر عن ما إذا تم ضغط هذا الزر أم لا، لن يرسل تقديم الرد على الاستطلاع السجلات الموجودة فوق العدد المتكرر الجديد.

عند تحرير رد استطلاع حالي، يعرض عدد التكرار لتكرار تم تقليله رسالة في أعلى التكرار تحذر من تغيير عدد سجل التكرار. يتعذر على المستخدم إرسال رد محرر بأقل من رقم سجلات التكرار الأصلي. يتم فقط قبول سجلات التكرار الجديدة الإضافية في حال تعيين allowAdds إلى صواب في العمود bind::esri:parameters. في حال تعيين allowAdds إلى خطأ، يتعذر على المستخدم إدخال أكثر من العدد الأصلي للسجلات المكررة.

تجميع الوظائف

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

count(${repeated_question})

يمكنك استخدام الوظائف التالية لتجميع الاستجابات:

  • count
  • sum
  • min
  • max
  • join

تنطبق فقط تلك الوظائف على استجابة الاستطلاع الحالي. إنها تضع في الاعتبار سجلات أخرى في طبقة المعالم. يمكنك أيضًا تضمين الأسئلة باستخدام sum و count في التكرار. ومع ذلك، في حين أنه يتم احتساب قيم sum و count لكل سجل جديد مضاف إلى التكرار، لا يتم تحديث العمليات الحسابية على الإدخالات السابقة في التكرار تلقائيًا. يمكنك تحديث هذه العمليات الحسابية يدويًا باستخدام الزر تحديث بجوار السؤال. استخدام min و max مدعوم فقط خارج التكرار.

ملاحظة:‏

عند الاستخدام في تطبيق Survey123 الميداني، يمكن وضع sum وcount داخل التكرار أو خارجه. في حال استخدام sum وcount في تطبيق ويب Survey123، يلزم وضعهما خارج التكرار. يمكن الإشارة إلى قيمة sum أو count من خارج التكرار في عملية حسابية داخل التكرار.

يمكنك استخدام دالة join لتسلسل الأسئلة التي تُرجع سلسلة. يمكنك أيضًا استخدام دالة sum للاتصال بأسئلة النقطة الجغرافية داخل التكرار كسؤال تتبع جغرافي أو شكل جغرافي خارج التكرار.

لمزيد من المعلومات عن كيفية استخدام هذه الدوال، راجع الصيغ.

إرجاع فهرس السجل المكرر

يمكنك استخدام دالة position(..) لإرجاع عدد صحيح يعكس فهرس السجل المكرر في تكرار. على سبيل المثال، سيرجع السجل الأول في التكرار 1، وسيرجع الثاني 2 ، وهكذا. في المثال التالي، تُستخدم وظيفة position(..) في سؤال عدد صحيح مخفي في تكرار:

مثال على دالة الموضع(..) في XLSForm
تنبيه:

تُرجع دالة position(..) دائمًا 0 في التطبيق الميداني Survey123 أو 1 في تطبيق الويب Survey123 عند استخدامها خارج تكرار أو داخل مجموعة موجودة داخل تكرار.

يمكنك أيضًا استخدام وظيفة position(..) في تعبير. في المثال التالي، تستخدم دالة selected-at() position(..) لإرجاع الخيار الذي تم تحديده في سؤال select_multiple في الموضع نفسه للسجل المكرر الحالي، وعرض الاختيار في التكرار كملاحظة. تبدأ دالة selected-at() في حساب الاختيارات من الصفر، لذلك يتم طرح اختيار واحد من position(..) للتأكد من تطابق الفهارس.

selected-at(${issues}, position(..)-1)

مثال على الموضع(..) ودوال selected-at() في XLSForm

يمكنك استخدام دالة position(..) جنبًا إلى جنب مع indexed-repeat() لاستخراج قيم الأسئلة من سجلات مكررة محددة.

استخدم القيم من التكرارات المفهرسة

يمكنك استخدام دالة indexed-repeat() لإرجاع القيمة من سؤال معين في سجل مكرر. يتطلب هذا اسم السؤال واسم التكرار ورقم فهرس التكرار بهذا الترتيب. يعيد المثال التالي الإجابة عن السؤال room_no للسجل الثالث في التكرار floor:

indexed-repeat(${room_no}, ${floor}, 3)

يمكنك استخدام وظيفة indexed-repeat() للتكرارات عبر التكرارات. عند استخدامها بهذه الطريقة، ستتلقى فقط القيم التي يمكن الوصول إليها من التكرار الأصلي المرئي حاليًا.

تنبيه:

لا يمكن استخدام دالة indexed-repeat() داخل التكرار الذي يشير إليه، إذ سيؤدي ذلك إلى مرجع دائري. على سبيل المثال، لا يمكن استخدام التعبير التالي لعملية حسابية داخل التكرار المسمى defects:

indexed-repeat(${defect_type}, ${defects}, 3)

القيود المعروفة

فيما يلي القيود المعروفة والسلوكيات غير المتوقعة عند استخدام التكرارات في Survey123:

  • إذا كان الاستطلاع يحتوي على تكرار فارغ بدون أسئلة بين بدء التكرار و إنهاء التكرار، سيفشل إرسال كل استجابات الاستطلاع.
  • إذا كان الاستطلاع يحتوي على العديد من التكرارات وكان أحد التكرارات يتضمن سؤال نقطة جغرافية أو تتبع جغرافي أو شكل جغرافي، فقد تظهر تسمية العلاقة خارج الترتيب.
  • لا تدعم التكرارات المتداخلة سوى علاقة واحد إلى متعدد، ولا يمكن أن يكون لكل تابع سوى رئيس واحد.
  • التكرارات المتداخل مع كلٍ من التعبير في العمود ذي الصلة والتعبير الموجود في العمود repeat_count ستؤدي إلى مسح جميع البيانات المحفوظة الموجودة في سجل التكرار الأول. لتجنب ذلك، قم بدمج التعبير ذي الصلة في تعبير repeat_count لكي لا يتم إنشاء سجلات تكرار عندما لا يكون التكرار ذا صلة.