إنشاء أرقام تسلسلية فريدة في النماذج

Read in English | Lire en français | Leer en español آخر تحديث: 29 يوليو 2025

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

الطريقة الأولى: إنشاء أرقام تسلسلية فريدة متتابعة بناءً على التاريخ والوقت

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

أنشئ نوع سؤال calculate في محرر النماذج أو XLSForm واستخدم الصيغة أدناه.

concat(substr(today(), 0, 4), substr(today(), 5, 7), substr(today(), 8, 10), substr(now(), 11, 13), substr(now(), 14, 16), substr(now(), 17, 19))

يمكن أن تعمل نفس الصيغة كسؤال integer عند العمل في XLSForm.

مثال على الحساب

في المثال، عندما تعاين النموذج المنشور في Enketo، يجب أن تكون قادراً على رؤية الرقم التسلسلي ضمن سؤال الملاحظة كما هو موضح في الصورة أدناه:

معاينة النموذج

الطريقة الثانية: إنشاء أرقام تسلسلية فريدة من متغيرات محددة

يوضح هذا المثال كيفية إنشاء أرقام تسلسلية فريدة من متغيرات موجودة ومحددة مسبقاً في نموذجك باستخدام تعبير concat() في نوع سؤال calculate. المثال معروض كـ XLSForm، ولكن يمكن القيام به بسهولة في محرر النماذج.

ورقة الاستبيان

type

name

label

calculation

text

Q1

اسم المنطقة

text

Q2

اسم المقاطعة

text

Q3

اسم التجمع

text

Q4

اسم القرية

text

Q5

الرقم التسلسلي للأسرة

calculate

Q1_C

substr(${Q1}, 0, 3)

calculate

Q2_C

substr(${Q2}, 0, 3)

calculate

Q3_C

substr(${Q3}, 0, 3)

calculate

Q4_C

substr(${Q4}, 0, 3)

calculate

ID

concat(${Q1_C}, '-', ${Q2_C}, '-', ${Q3_C}, '-', ${Q4_C}, '-', ${Q5})

note

note_id

المعرف الفريد الخاص بك لهذا النموذج هو: ${ID}

survey

عندما تعاين المثال في نماذج Enketo الإلكترونية، سيتم عرض الرقم التسلسلي ضمن سؤال الملاحظة كما هو موضح في الصورة أدناه:

معاينة المعرف الفريد