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

عندما تنشر استطلاعًا يحتوي على تكرارات، يتم إنشاء كل تكرار كجدول مرتبط في طبقة المعالم أو طبقة ذات صلة إذا احتوى التكرار على سؤال نقطة جغرافية أو تتبع جغرافي أو شكل جغرافي.
استخدام التكرارات
لتكرار مجموعة من الأسئلة في Survey123 لالتقاط العديد من الإجابات، أكمل الخطوات التالية في علامة تبويب الاستطلاع من جدول البيانات:
- في الصف الذي تريد بدء التكرار فيه، اكتب بدء التكرار في عمود النوع.
- قم بتوفير اسم للتكرار في عمود الاسم.
- في الصفوف أدنى هذا الإدخال، أدخل الأسئلة التي تريد تضمينها في التكرار الخاص بك.
- فورًا بعد الأسئلة، اكتب إنهاء التكرار في عمود النوع.
يتم إنشاء مجموعة من الأسئلة في الاستطلاع الخاص بك الذي يمكنك إضافته بشكل متكرر إلى نتائج الاستطلاع. لا يوجد قيد افتراضيًا على عدد المرات الممكنة لتكرار الأسئلة.
يمكن عرض مواقع النقاط من أول سؤال نقطة جغرافية في تكرار على أي خريطة في استطلاعك. لمزيد من المعلومات، راجع تراكبات النقاط على الخرائط.
تحديد عدد السجلات المتكررة
لتحديد عدد السجلات المتكررة داخل تكرار معين، قم بتعيين عدد التكرارات عن طريق إكمال الخطوات التالية:
- في الصف الذي تريد بدء التكرار فيه، اكتب بدء التكرار في عمود النوع في علامة تبويب الاستطلاع.
- قم بتوفير قيمة عددية لعدد التكرارات في العمود repeat_count. يمكنك أيضًا تقديم اسم سؤال أو حساب يرجع قيمة رقمية.
- قم بتوفير اسم للتكرار في عمود الاسم.
- في الصفوف أدنى هذا الإدخال، أدخل الأسئلة التي تريد تضمينها في التكرار الخاص بك.
- في الصف الأخير، اكتب إنهاء التكرار في عمود النوع.
عندما يقوم المستخدم بفتح الاستطلاع، يتم بالفعل إنشاء عدد التكرارات المعينة في العمود repeat_count. يتعذر على المستخدم إنشاء تكرارات أو حذفها.
يجب على المستخدمين التنقل إلى جميع السجلات المتكررة المحددة بواسطة قيمة repeat_count قبل إرسال إجابة الاستبيان. وإلا، فلن يتم إرسال جميع السجلات المتكررة، لأنه لا يمكن تطبيق التعبيرات والقيم الافتراضية على التكرارات إلا بعد أن ينتقل المستخدم إلى السجل. لضمان تقديم كل التكرارات، يمكنك صياغة الأسئلة المطلوبة في التكرارات. كن على علم أن الأسئلة في التكرارات ذات الصلة أو عبارة مطلوبة بشكل مشروط لا يتم تقييمها عند التقديم.
ملاحظة:
يختلف سلوك تكرار ما مع عدد تكرار متغير على أساس ما إذا كان المستخدم يُنشئ ردًا على استطلاع أو تحرير الاستطلاع المقدم سابقًا.
- عند إنشاء إجابة عن استطلاع، يعرض التطبيق الميداني زرًا في الجزء العلوي من التكرار لحذف جميع السجلات التي تتجاوز عدد التكرار الجديد والتي تحتوي على بيانات؛ وتحذف السجلات الفارغة تلقائيًا. بغض النظر عن ما إذا تم ضغط هذا الزر أم لا، سيؤدي تقديم الرد على الاستطلاع إلى إرسال جميع السجلات باستثناء الفارغة.
- عند تعديل أحد الردود الموجودة على الاستطلاع، يعرض التطبيق الميداني رسالة في الجزء العلوي من التكرار للإشارة إلى أن عدد السجلات لا يتطابق مع عدد التكرارات. يمكن إضافة سجلات متكررة جديدة فقط في حال تعيين allowAdds على صواب في عمود bind::esri:parameters. لا يمكن حذف السجلات التي تتجاوز عدد التكرارات لأن التطبيق الميداني لا يدعم حذف السجلات المتكررة الموجودة. يمكن إرسال ردود الاستطلاع المعدلة حتى إذا كان عدد السجلات المتكررة لا يتطابق مع عدد التكرارات.
تجميع الوظائف
يمكنك استخدام تجميع الدوال لإرجاع القيم المشتقة من الاستجابات عبر التكرارات. للقيام بذلك، يتم الإشارة إلى سؤال داخل التكرار عن طريق سؤال خارج التكرار. على سبيل المثال، تعتمد الصيغة التالية على الإجابة على الأسئلة الفردية عبر التكرارات:
count(${repeated_question})
يمكنك استخدام الوظائف التالية لتجميع الاستجابات:
- count
- sum
- min
- max
- join
تنطبق فقط تلك الوظائف على استجابة الاستطلاع الحالي. إنها تضع في الاعتبار سجلات أخرى في طبقة المعالم. يمكنك أيضًا تضمين الأسئلة باستخدام sum و count في التكرار. ومع ذلك، في حين أنه يتم احتساب قيم sum و count لكل سجل جديد مضاف إلى التكرار، لا يتم تحديث العمليات الحسابية على الإدخالات السابقة في التكرار تلقائيًا. يمكنك تحديث هذه العمليات الحسابية يدويًا باستخدام الزر تحديث بجوار السؤال. استخدام min وmax مدعوم فقط خارج التكرار.
ملاحظة:
عند استخدامها في تطبيق Survey123 الميداني، يمكن وضع الدوال sum وcount وjoin داخل التكرار أو خارجه. في حال استخدام sum وcount وjoin في تطبيق الويب Survey123، يلزم وضعها خارج التكرار. يمكن الإشارة إلى قيمة sum أو count أو join من خارج التكرار في عملية حسابية داخل التكرار.
يمكنك استخدام دالة join لتسلسل الأسئلة التي تُرجع سلسلة. يمكنك أيضًا استخدام دالة sum لربط أسئلة النقطة الجغرافية داخل التكرار كسؤال تتبع جغرافي أو شكل جغرافي خارج التكرار.
لمزيد من المعلومات عن كيفية استخدام هذه الدوال، راجع الصيغ.
إرجاع فهرس السجل المكرر
يمكنك استخدام دالة position(..) لإرجاع عدد صحيح يعكس فهرس السجل المكرر في تكرار. على سبيل المثال، سيرجع السجل الأول في التكرار 1، وسيرجع الثاني 2 ، وهكذا. في المثال التالي، تُستخدم وظيفة position(..) في سؤال عدد صحيح مخفي في تكرار:

تنبيه:
تُرجع دالة position(..) دائمًا 0 في التطبيق الميداني Survey123 أو 1 في تطبيق الويب Survey123 عند استخدامها خارج تكرار أو داخل مجموعة موجودة داخل تكرار.
يمكنك أيضًا استخدام وظيفة position(..) في تعبير. في المثال التالي، تستخدم دالة selected-at() position(..) لإرجاع الخيار الذي تم تحديده في سؤال select_multiple في الموضع نفسه للسجل المكرر الحالي، وعرض الاختيار في التكرار كملاحظة. تبدأ دالة selected-at() في حساب الاختيارات من الصفر، لذلك يتم طرح اختيار واحد من position(..) للتأكد من تطابق الفهارس.
selected-at(${issues}, position(..)-1)

يمكنك استخدام دالة 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 لكي لا يتم إنشاء سجلات تكرار عندما لا يكون التكرار ذا صلة.
- تعديل ردود فردية في تطبيق الويب Survey123 أو موقع الويب غير مدعوم للاستطلاعات التي تحتوي على تكرارات متداخلة.