استعلامات التقرير

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

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

إضافة قسم ملخص

لتضمين قسم ملخص في تقرير، قم بتضمين علامات التلخيص في قالب التقرير. سيتم إنتاج قسم الملخص مرة واحدة فقط إذا كانت السجلات المتعددة محددة للتقرير بينما سيتم إنتاج بقية قالب التقارير لكل سجل. ويتم ذلك باستخدام الجملة التالية:

$<$summary>
...
$</>

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

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

  • ${inspectionLocation | size:400:300} - يعرض جميع سجلات الإدخال.
  • ${inspectionLocation | orderByFields:"creationDate DESC" | resultRecordCount:3 | size:400:300} - يعرض أحدث ثلاثة سجلات بين جميع سجلات الإدخال.
  • ${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300} - يطبع كل الأشكال الهندسية على الطبقة الرئيسية باستخدام معلومات رسم الطبقة الرئيسية.
ملاحظة:‏

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

يحتوي الجدول التالي على طرق مدعومة مفيدة لعرض الإحصائيات أو تشكيل طريقة عرض بيانات تقريرك:

الطريقةالوصفمثال

where

لا يُرجع سوى السجلات التي تتلاءم مع معايير معينة.

${#mainLayer | where:"status='broken'"}...${/}

stats

دالة مجمعة مشتقة من سجلات معينة في الطبقة.

${mainLayer | where:"status='broken'" | stats:"count,objectId"}

orderByFields

يرتب السجلات المطبوعة في تقرير ما حسب حقل واحد أو أكثر بترتيب تصاعدي أو تنازلي.

${#mainLayer | orderByFields:"state_name ASC,POP2000 DESC"}...${/}

resultRecordCount

يحدد عددًا معينًا من السجلات للطباعة.

${#mainLayer | resultRecordCount:3}...${/}

returnDistinctValues

إذا تم التعيين على "صحيح"، يتم إرجاع قيم فريدة إذا تم استخدامها مع outFields. في حالة استخدامها مع النوع الإحصائي count، تُرجع هذه الطريقة عدد القيم الفريدة في الحقل.

${#mainLayer | outFields:"status" | returnDistinctValues:true}...${/} أو ${mainLayer | stats:"count,stateName" returnDistinctValues:true}

outFields

استخدمه مع returnDistinctValues للحصول على القيم الفريدة لحقل أو لمجموعة من الحقول. تقبل هذه الطريقة قائمة حقول مفصولة بفواصل.

${#mainLayer | outFields:"status" | returnDistinctValues:true}...${/}

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

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

تلميح:

عند معاينة تقرير، تنتج دوال التجميع نتائج من كل استجابة محددة للطباعة، على الرغم من أن تقارير معاينة العينة تقوم بطباعة 20 نتيجة فقط كحد أقصى في كل مرة.

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

يتم التحكم في دوال التجميع من خلال استخدام عامل تصفية يُسمى stats. يُستخدم عامل التصفية هذا بشكل مماثل لاستعلامات خدمة المعالم، ويستخدم التنسيق التالي:

${layerName | stats:"outStatistics":"groupByFieldsForStatistics":"havingClause"}

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

  • نوع الإحصائيات.
  • السؤال الذي تريد سحب النتائج منه.
  • اختياريًا، قم بتضمين اسم حقل للحساب الناتج؛ إذا تم ذلك، تمكن الإشارة إلى اسم الحقل في مكان آخر بنفس الطريقة مثل أي سؤال استطلاع.

تقبل معلمات groupByFieldsForStatistics وhavingClause قيم استعلامات خدمة المعالم نفسها، وهي اختيارية. يمكن حذفها إذا لزم الأمر.

سيُنشئ المثال التالي مجموع كل النتائج المقدمة للسؤال المسمى pop2000:

${mainLayer | stats:"sum,pop2000"}

أنواع الإحصائيات المدعومة هي كما يلي:

قيمةالوصف

avg

متوسط كل الاستجابات

count

مقدار كل الاستجابات

sum

إجمالي مجموع كل الاستجابات

stddev

الانحراف المعياري من المتوسط

min

أدنى استجابة للسؤال

max

أعلى استجابة للسؤال

var

التباين من المتوسط

range

نطاق القيم في جميع الإجابات (الحد الأقصى ناقص الحد الأدنى)

first

أول إجابة على السؤال

last

آخر إجابة على السؤال

median

متوسط كل الإجابات

يمكن تعيين معلمات outStatistics متعددة بفصلها بفاصلة منقوطة. في حال استخدام معلمات متعددة، فسيخرج الاستعلام صفيفًا من النتائج. في المثال التالي، يُحسب كل من إجمالي ومتوسط دخل السكان ويُعرض من السجلات في الطبقة الرئيسية:

${#mainLayer | stats:"sum,pop2000,populationTotal;avg,income,averageIncome"}
Population total: ${populationTotal} 
Average income: ${averageIncome}
${/}

تضمين تحديد القيم

يمكن طباعة القيم الفردية من الأسئلة باستخدام الوظيفة نفسها المستخدمة للتكرارات في التقارير الفردية. بإنشاء عامل تصفية لسحب القيم المحددة فقط، يمكنك زيادة الملخص الخاص بك بمعلومات محددة تم سحبها من المسح الخاص بك.

ملاحظة:‏

إذا كنت تستخدم عامل تصفية في تقرير فردي، فسيُستخدم السجل الفردي كسياق افتراضي لعامل التصفية. قد تحتاج إلى استخدام بناء جملة إضافية للحصول على النتيجة التي تريدها.

فيما يلي مثال على عامل تصفية يستخدم معلومات محددة فقط، متبوعًا بتوضيحات لعناصره الفردية.

متوسط عدد السكاناسم المؤسسة

${#All_Orgs | stats:"avg,POP,AvgPOP":"Org_NAME":"AVG(POP)>200" | orderByFields:"AvgPOP DESC" | resultRecordCount:5}${AvgPOP | round:2}

${Org_NAME}${/}

  • #All_Orgs—الطبقة المحددة المشار إليها للحصول على البيانات المطلوبة. يؤدي هذا إلى بدء الإعلان عن منطقة لسحب بيانات الاستجابة إليها، وعامل تصفية stats أيضًا.
  • "avg,POP,AvgPOP"—معلمة outStatistics لعامل تصفية الإحصائيات. في هذه الحالة، تقوم بإرجاع متوسط عدد الاستجابات على السؤال المسمى POP، وحفظها في حقل مسمى AvgPOP.
  • "Org_NAME"—معلمة groupByFieldsForStatistics لعامل تصفية الإحصائيات. سيؤدي هذا إلى تجميع متوسط الاستجابات وفقًا لاستجابات على السؤال المسمى Org_NAME.
  • "AVG(POP)>200"—معلمة havingClause لعامل تصفية الإحصائيات. ويضمن ذلك تضمين الاستجابات التي يزيد متوسط عدد سكانها عن 200 نسمة.
  • orderByFields:"AvgPOP DESC"—يدرج عامل تصفية orderByFields الاستجابات على أساس محتويات حقل محدد. في هذه الحالة، يتم سرد الاستجابات وفقًا لحقل AvgPOP الذي تم إنشاؤه بواسطة معلمة outStatistic بترتيب تنازلي.
  • resultRecordCount:5—يقيد عامل التصفية resultRecordCount الاستجابات على عدد محدد؛ وهو في هذه الحالة الرقم 5.
  • ${AvgPOP | round:2}—يتم تقريب محتويات حقل AvgPOP لأقرب رقمين عشريين. هذا هو العنصر الوحيد في الخلية الأولى الذي سيتم عرضه في الملخص؛ لن يُعرض عامل تصفية الإحصائيات نفسه.
  • ${Org_NAME}—محتويات حقل Org_NAME من استجابات الاستطلاع.
  • ${/}—ينهي إعلان منطقة لسحب بيانات الاستجابة فيها. لأن كل هذه المعلومات موجودة فقط في جدول، يجب أن يتم الإعلان عن بداية هذه المنطقة ونهايتها داخل نفس الجدول.

ستعرض نتيجة عامل التصفية هذه خمسة صفوف من الاستجابات في الجدول، مع إضافة الصفوف الإضافية التي يحتاجها. سيبدو تقرير الملخص الناتج مشابهًا لما يلي:

متوسط عدد السكاناسم المؤسسة

2360.23

A

1639.75

C

1179.7

B

915.93

D

795.57

E

الجملة الإضافية

بالإضافة إلى المعلمات أعلاه المستخدمة في إنشاء عامل تصفية للاستطلاع الخاص بك، هناك معلمات ومؤهلات إضافية يمكن استخدامها لتحسين الاستعلام الخاص بك.

  • where - عبارة أين SQL قانونية تعمل في الحقول في الطبقة.
    • قيمة صريحة—على سبيل المثال، سيؤدي where:"weather='sunny'" إلى استخدام عامل التصفية فقط للاستجابات التي يكون فيها الحقل weather هو القيمة sunny بالتحديد.
    • محتويات الحقل - على سبيل المثال، ستستخدم where:"weather='"+cloudCover+"'" محتويات الحقل cloudCover كمتطلب للحقل weather.
    • معلمات إضافية—على سبيل المثال، ستستخدم where:"weather='"+cloudCover+"' AND temperature='high'" الاستجابات التي يتطابق الطقس فيها مع الحقل cloudCover، ويكون حقل درجة الحرارة هو القيمة high بالتحديد.
  • !important—يمكن إضافة هذا المؤهل إلى أي عامل تصفية ولكن resultRecordCount لتجاوز أي قيود يرجعها عامل التصفية ذلك. على سبيل المثال، إذا كنت تطبع تقارير من الأيام السبعة الأخيرة فقط، فقد يتسبب where:"weather='sunny' !important" في أن يقوم عامل التصفية باستخدام الاستجابات فقط التي يكون فيها حقل weather هو القيمة sunny بالتحديد، ولكنه يسحب من جميع الاستجابات المطبقة في طبقة المعالم، بدلاً من الاستجابات المحددة فقط المراد طباعتها.
  • $inputParams—يمكن استخدام هذا العنصر النائب داخل أي عامل تصفية باستثناء resultRecordCount للإشارة إلى المعلمات التي قمت بتعيينها في موقع الويب Survey123 عند طباعة تقرير. يمكن بعد ذلك أن تكون هذه المعلمات مؤهلة بدرجة أكبر لتضييق استجابتك. على سبيل المثال، سيرتب orderByFields:"$inputParams, objectid DESC" الحقول باستخدام مجموعة الترتيب في موقع ويب Survey123، ثم تنازليًا حسب قيمة معرف الكائن لجميع الحقول ذات المعلمات المطابقة. يمكنك أيضًا استخدام $inputParams لتطبيق المعلمات للتكرار.
ملاحظة:‏

إذا تم استخدام where مع عوامل تصفية أخرى، يجب تنفيذها بالترتيب التالي: where ثم stats ثم orderByFields ثم resultRecordCount.