ఈ పేజీ rtSurvey లో రిపీట్ సమూహాలతో పని చేయడానికి అధునాతన నమూనాలను కవర్ చేస్తుంది. రిపీట్ సమూహం సెటప్ చేయడంపై ప్రాథమికాల కోసం, సమూహాలు మరియు రిపీట్‌లు చూడండి.


డైనమిక్ రిపీట్ గణన

డిఫాల్ట్‌గా, గణికుడు ఎన్నిసార్లు పునరావృతించాలో నిర్ణయిస్తాడు. repeat_count ఉపయోగించి పునరావృత సంఖ్యను స్థిరం చేయవచ్చు:

typenamelabelrepeat_count
begin_repeathousehold_membersHousehold member${num_members}
textmember_nameMember name
integermember_ageAge
end_repeat

ముందే సేకరించిన num_members ఆధారంగా రిపీట్ ఖచ్చితంగా ${num_members} సార్లు నడుస్తుంది. గణికుడు instances జోడించలేరు లేదా తొలగించలేరు.


ఇండెక్స్ చేయబడిన యాక్సెస్: indexed-repeat()

indexed-repeat(repeatedField, repeatGroup, index) ఉపయోగించి రిపీట్ సమూహం వెలుపల నుండి నిర్దిష్ట రిపీట్ ఇన్‌స్టెన్స్ ఫీల్డ్ విలువ యాక్సెస్ చేయండి:

typenamelabelcalculation
calculatefirst_nameindexed-repeat(${member_name}, ${household_members}, 1)
calculatesecond_nameindexed-repeat(${member_name}, ${household_members}, 2)

సారాంశ ఫీల్డ్‌లు నిర్మించడానికి లేదా రిపీట్ తర్వాత “ప్రాథమిక” సభ్యుని డేటా సూచించడానికి ఇది ఉపయోగకరం.


ప్రస్తుత ఇన్‌స్టెన్స్ స్థానం: index()

రిపీట్ సమూహంలో, index() ప్రస్తుత ఇన్‌స్టెన్స్ యొక్క 1-ఆధారిత స్థానాన్ని తిరిగి ఇస్తుంది. ప్రతి పునరావృత లేబుల్ చేయడానికి లేదా unique identifiers సృష్టించడానికి ఉపయోగించండి:

typenamelabel
begin_repeatplotsPlot
noteplot_labelPlot number ${index()}
textplot_idPlot ID
end_repeat

అదే ఇన్‌స్టెన్స్‌లో ఫీల్డ్‌లు సూచించడం

రిపీట్ లోపల, అదే రిపీట్ ఇన్‌స్టెన్స్ లోని మరొక ఫీల్డ్ సూచించడానికి ${fieldname} ఉపయోగించండి. అదే loop లో indexed-repeat() అవసరం లేదు:

typenamelabelrelevant
begin_repeatmembersMember
textmember_nameName
integermember_ageAge
textschool_nameSchool name${member_age} < 18
end_repeat

రిపీట్ లోపల నుండి మాతృ ఫీల్డ్‌లు సూచించడం

రిపీట్ సమూహం వెలుపల (పైన) ఉన్న ఫీల్డ్‌లు ${fieldname} తో సాధారణంగా సూచించవచ్చు:

typenamelabel
textvillageVillage name
begin_repeatplotsAgricultural plot
noteplot_contextPlots in ${village}
end_repeat

రిపీట్ డేటా సారాంశం

రిపీట్ సమూహం వెలుపల రిపీట్ అగ్రిగేట్ ఫంక్షన్‌లు ఉపయోగించి సారాంశం:

ఫంక్షన్ఉదాహరణవివరణ
count(group)count(${household_members})ఇన్‌స్టెన్స్‌ల సంఖ్య
sum(field)sum(${loan_amount})సంఖ్య ఫీల్డ్ మొత్తం
min(field)min(${member_age})కనిష్ట విలువ
max(field)max(${member_age})గరిష్ట విలువ
join(sep, field)join(', ', ${member_name})Comma-separated జాబితా
count-if(group, expr)count-if(${members}, ${member_age} < 18)షరతులతో కూడిన గణన
sum-if(field, expr)sum-if(${loan_amount}, ${loan_amount} > 500)షరతులతో కూడిన మొత్తం
join-if(sep, field, expr)join-if(', ', ${name}, ${age} >= 18)షరతులతో కూడిన join

ఉదాహరణ: గృహ సారాంశం

typenamelabelcalculation
integernum_membersHow many members?
begin_repeatmembersMember${num_members}
textmember_nameName
integermember_ageAge
end_repeat
calculatetotal_memberscount(${members})
calculatechildren_countcount-if(${members}, ${member_age} < 18)
calculateadult_namesjoin-if(', ', ${member_name}, ${member_age} >= 18)
notesummary${total_members} members; ${children_count} under 18. Adults: ${adult_names}

నెస్టెడ్ రిపీట్‌లు

రిపీట్ సమూహం మరొక రిపీట్ సమూహాన్ని కలిగి ఉండవచ్చు. జాగ్రత్తగా ఉపయోగించండి — నెస్టెడ్ రిపీట్‌లు సంక్లిష్టత జోడిస్తాయి మరియు గణికులకు అయోమయంగా ఉండవచ్చు.

typenamelabel
begin_repeathouseholdsHousehold
texthh_idHousehold ID
begin_repeathh_membersMember
textmember_nameMember name
end_repeat
end_repeat

లోపలి రిపీట్ నుండి బాహ్య రిపీట్‌లో ఫీల్డ్ సూచించడానికి, ${fieldname} ఉపయోగించండి — ఇది సమీపిస్తున్న సరిపోలే ancestor కు resolve అవుతుంది:

hh_members రిపీట్ లోపల, ${hh_id} ప్రస్తుత గృహం యొక్క ID తిరిగి ఇస్తుంది, అన్ని గృహాల కాదు.


రిపీట్ సమూహాలలో rank: rank-index()

రిపీట్‌లో rank ఫీల్డ్ ఉన్నప్పుడు, rank-index(instanceNumber, repeatedField) ఉపయోగించి రిపీట్ వెలుపల నుండి నిర్దిష్ట ఇన్‌స్టెన్స్ యొక్క ordinal rank పొందండి:

typenamelabelcalculation
calculatetop_scorerrank-index(1, ${score})

rank-index(1, ${score}) అత్యధిక score యొక్క ఇన్‌స్టెన్స్ index తిరిగి ఇస్తుంది.


ఉత్తమ పద్ధతులు

  1. ముందే పునరావృత సంఖ్య తెలిసినప్పుడు ఎల్లప్పుడూ repeat_count ఉపయోగించండి — గణికులు instances యాదృచ్ఛికంగా జోడించడం లేదా తొలగించడం నివారిస్తుంది.
  2. రిపీట్ సమూహాలు దృష్టి కేంద్రీకరించి ఉంచండి — instance కు 20+ ప్రశ్నలతో రిపీట్ నావిగేట్ చేయడం కష్టం.
  3. రిపీట్ సమూహాలను స్పష్టంగా పేరు పెట్టండి (ఉదా. household_members, repeat1 కాదు) — పేరు ఫంక్షన్ కాల్‌లు మరియు ఎగుమతి డేటాలో కనిపిస్తుంది.
  4. పనితీరు ధృవీకరించడానికి ఆశించిన గరిష్ట instance సంఖ్యతో పరీక్షించండి.
  5. mobile లో instance కు అన్ని ఫీల్డ్‌లు ఒక స్క్రీన్‌లో చూపించడానికి రిపీట్ సమూహంపై field-list అపీరెన్స్ ఉపయోగించండి.

పరిమితులు

  • indexed-repeat() కు చెల్లుబాటయ్యే index అవసరం (1 నుండి instances గణన వరకు) — పరిధి వెలుపల indexes ఖాళీగా తిరిగి ఇస్తాయి.
  • 2 స్థాయిలకు మించిన నెస్టెడ్ రిపీట్‌లు సిఫారసు చేయబడవు మరియు కొన్ని క్లయింట్‌లలో ప్రదర్శన సమస్యలు కలిగించవచ్చు.
  • అగ్రిగేట్ ఫంక్షన్‌లు (sum, count మొదలైనవి) మొత్తం రిపీట్ సమూహంపై పని చేస్తాయి — *-if వేరియంట్‌లు లేకుండా instances subset ను అగ్రిగేట్ చేయలేరు.
ఈ పేజీ సహాయకరంగా ఉందా?