String functions

rtSurvey विभिन्न functions का समर्थन करता है, जिनमें शामिल हैं:

  1. string(field): किसी field को string में convert करता है।

    • उदाहरण: string(34.8) को '34.8' में convert किया जाएगा।
  2. string-length(field): एक string field की length return करता है।

    • उदाहरण: string-length(.) > 3 and string-length(.) < 10 का उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि current field 3 से 10 characters के बीच हो।
  3. substr(fieldorstring, startindex, endindex): startindex से शुरू होकर endindex से ठीक पहले तक का substring return करता है। Indexes string में पहले character के लिए 0 से शुरू होते हैं।

    • उदाहरण: substr(${phone}, 0, 3) phone number के पहले तीन digits return करेगा।
  4. concat(a, b, c, ...): Fields (और/या strings) को एक साथ concatenate करता है।

    • उदाहरण: concat(${firstname}, ' ', ${lastname}) firstname और lastname fields के values को combine करके पूरा नाम return करेगा।
  5. linebreak(): एक linebreak character return करता है।

    • उदाहरण: concat(${field1}, linebreak(), ${field2}, linebreak(), ${field3}) उनके बीच linebreaks के साथ तीन field values की एक list return करेगा।
  6. lower(): एक string को सभी lowercase characters में convert करता है।

    • उदाहरण: lower('Street Name') “street name” return करेगा।
  7. upper(): एक string को सभी uppercase characters में convert करता है।

    • उदाहरण: upper('Street Name') “STREET NAME” return करेगा।

select_one और select_multiple functions

  1. count-selected(field): एक select_multiple field में चुने गए items की संख्या return करता है।

    • उदाहरण: count-selected(.) = 3 एक constraint expression के रूप में उपयोग किया जा सकता है ताकि यह सुनिश्चित हो कि ठीक तीन choices चुने गए हों।
  2. selected(field, value): इस पर निर्भर करते हुए true या false return करता है कि निर्दिष्ट value select_one या select_multiple field में चुनी गई थी या नहीं।

    • उदाहरण: selected(${color}, 'Blue') एक relevance expression के रूप में उपयोग किया जा सकता है ताकि एक group या field केवल तभी दिखाई दे जब उत्तरदाता ने अपने पसंदीदा रंग के रूप में “Blue” चुना हो।
    • नोट: दूसरा parameter हमेशा choice value निर्दिष्ट करना चाहिए, choice label नहीं। form definition की choices worksheet में value column से मूल्य का उपयोग करें।
  3. selected-at(field, number): एक select_multiple field में निर्दिष्ट position पर चुने गए item को return करता है। जब पास किया गया number 0 है, तो यह पहला चुना गया item return करता है; जब number 1 है, तो यह दूसरा चुना गया item return करता है, और इसी तरह।

    • उदाहरण: selected-at(${fruits}, 0) = 'Apple' एक relevance expression के रूप में उपयोग किया जा सकता है ताकि एक group या field केवल तभी दिखाई दे जब पहला चुना गया choice “Apple” हो।
    • नोट: return किया गया मूल्य choice value होगा, choice label नहीं। form definition की choices worksheet में value column से मूल्य का उपयोग करें।
  4. choice-label(field, value): form definition की choices worksheet में defined एक select_one या select_multiple field choice के लिए label return करता है।

    • उदाहरण 1: choice-label(${country}, ${country}) country नामक field में वर्तमान में चुने गए choice के लिए choice label return करेगा।
    • उदाहरण 2: choice-label(${languages}, selected-at(${languages}, 0)) languages नामक field में पहले चुने गए choice के लिए label return करेगा।
    • नोट: यह function choice label retrieve करता है, value नहीं। यह form definition की choices worksheet में label column का उपयोग करता है।

Repeated field functions

rtSurvey में, यदि आप एक ही प्रश्न(ों) को कई बार पूछना चाहते हैं, तो आप एक field को एक repeat group के अंदर रख सकते हैं। इससे एक ही field के multiple instances बनते हैं। निम्नलिखित functions आपको इन repeated fields और उनके द्वारा produce किए गए repeated data से deal करने में मदद कर सकते हैं।

  1. join(string, repeatedfield): एक repeat group के भीतर एक field के लिए, values की एक string-separated list generate करता है। पहला parameter values को अलग करने के लिए उपयोग किए जाने वाले delimiter को निर्दिष्ट करता है।

    • उदाहरण: join(', ', ${member_name}) सभी दर्ज किए गए names से एक comma-separated list generate करेगा।
  2. join-if(string, repeatedfield, expression): join() की तरह ही काम करता है, सिवाय इसके कि यह supplied expression का उपयोग करके repeat group में प्रत्येक instance को check करता है। यदि expression false evaluate होती है, तो item output से omit हो जाएगा।

    • उदाहरण: join-if(', ', ${member_name}, ${age} >= 18) केवल adult members (18 और उससे अधिक आयु वाले) के names की comma-separated list generate करेगा।
  3. count(repeatgroup): वह वर्तमान संख्या return करता है जितनी बार एक repeat group repeat हुआ है।

    • उदाहरण: count(${groupname}) group के instances की संख्या return करेगा।
  4. count-if(repeatgroup, expression): count() की तरह ही काम करता है, सिवाय इसके कि यह supplied expression का उपयोग करके repeat group में प्रत्येक instance को check करता है। यदि expression false evaluate होती है, तो item output से omit हो जाएगा।

    • उदाहरण: count-if(${members}, ${age} >= 18) “members” repeat group के भीतर age field के आधार पर adult members की count return करेगा।
  5. sum(repeatedfield): एक repeat group के भीतर एक field के लिए, सभी values का sum calculate करता है।

    • उदाहरण: sum(${loan_amount}) सभी loans का कुल मूल्य return करेगा।
  6. sum-if(repeatedfield, expression): sum() की तरह ही काम करता है, सिवाय इसके कि यह supplied expression का उपयोग करके repeat group में प्रत्येक instance को check करता है। यदि expression false evaluate होती है, तो item output से omit हो जाएगा।

    • उदाहरण: sum-if(${loan_amount}, ${loan_amount} > 500) 500 से अधिक के सभी loans का कुल मूल्य return करेगा। छोटे loans को नज़रअंदाज़ किया जाएगा।
  7. min(repeatedfield): एक repeat group के भीतर एक field के लिए, सभी values का minimum calculate करता है।

    • उदाहरण: min(${member_age}) group में सबसे युवा member की आयु return करेगा।
  8. min-if(repeatedfield, expression): min() की तरह ही काम करता है, सिवाय इसके कि यह supplied expression का उपयोग करके repeat group में प्रत्येक instance को check करता है। यदि expression false evaluate होती है, तो item output से omit हो जाएगा।

    • उदाहरण: min-if(${member_age}, ${member_age} >= 18) group में सबसे युवा adult की आयु return करेगा। 18 से कम आयु वालों को नज़रअंदाज़ किया जाएगा।
  9. max(repeatedfield): एक repeat group के भीतर एक field के लिए, सभी values का maximum calculate करता है।

    • उदाहरण: max(${member_age}) group में सबसे वृद्ध member की आयु return करेगा।
  10. max-if(repeatedfield, expression): max() की तरह ही काम करता है, सिवाय इसके कि यह supplied expression का उपयोग करके repeat group में प्रत्येक instance को check करता है। यदि expression false evaluate होती है, तो item output से omit हो जाएगा।

    • उदाहरण: max-if(${member_age}, ${member_age} >= 18) group में सबसे वृद्ध adult की आयु return करेगा। 18 से कम आयु वालों को नज़रअंदाज़ किया जाएगा।
  11. index(): एक repeat group के भीतर call करने पर, current group या instance के लिए index number return करता है।

    • उदाहरण: एक repeat group के भीतर उपयोग करने पर index() पहले instance के लिए 1, दूसरे के लिए 2 return करेगा, और इसी तरह।
  12. indexed-repeat(repeatedfield, repeatgroup, index): उस repeat group के बाहर से एक repeat group के अंदर एक field या group को reference करता है। पहला parameter interest के repeated field या group को निर्दिष्ट करता है, दूसरा उस repeat group को निर्दिष्ट करता है जिसके भीतर field या group स्थित है, और तीसरा उपयोग करने के लिए repeat group के भीतर instance number निर्दिष्ट करता है।

    • उदाहरण 1: indexed-repeat(${name}, ${names}, 1) पहला उपलब्ध name return करेगा जब name field “names” नामक पूर्व repeat group के अंदर हो।
    • उदाहरण 2: indexed-repeat(${name}, ${names}, index()) current repeat group के instance number के corresponding name pull करेगा।
  13. rank-index(index, repeatedfield): यह function repeat group के बाहर उपयोग के लिए एक repeated field के निर्दिष्ट instance का ordinal rank calculate करता है। Rank 1 उच्चतम मूल्य वाले instance को assign किया जाता है, rank 2 अगले-उच्चतम मूल्य वाले instance को, और इसी तरह। यदि आप एक invalid index या non-numeric मूल्य वाले instance का index pass करते हैं, तो 999 का rank return किया जाएगा।

    • उदाहरण: rank-index(1, ${random_draw}) अन्य instances के values की तुलना में इसके random_draw field के value के आधार पर पहले instance का rank calculate करता है।
  14. rank-index-if(index, repeatedfield, expression): यह function rank-index() की तरह ही काम करता है, लेकिन यह supplied expression का उपयोग करके repeated field के repeat group में प्रत्येक instance को check करता है। यदि expression false evaluate होती है, तो item calculation से omit हो जाएगा। उपयोग किया गया index प्रत्येक instance के लिए expression evaluate करने से पहले instances के full set पर आधारित है। यदि आप किसी ऐसे instance का index pass करते हैं जिसे expression को satisfy न करने के कारण ignore किया गया था, तो इसे एक invalid index माना जाता है, और 999 का rank return किया जाएगा।

    • उदाहरण: rank-index-if(1, ${age}, ${age} >= 18) adults के set के भीतर age rank calculate करता है, केवल उन instances पर विचार करता है जहाँ age 18 या उससे अधिक है।

Number functions

OperatorOperationExampleExample answer
+जोड़1 + 12
-घटाव3 - 21
*गुणा3 * 26
divभाग10 div 25
modModulus9 mod 21

rtSurvey number functions का समर्थन करता है, जिनमें शामिल हैं:

  • number(field): field के मूल्य को एक number में convert करता है।

    • उदाहरण: number('34.8') = 34.8
  • int(field): field के मूल्य को एक integer में convert करता है।

    • उदाहरण: int('39.2') = 39
  • min(field1, ..., fieldx): पास किए गए fields के बीच minimum value return करता है।

    • उदाहरण: min(${father_age}, ${mother_age}) माँ या पिता की आयु return करेगा, जो भी छोटी हो।
  • max(field1, ..., fieldx): पास किए गए fields के बीच maximum value return करता है।

    • उदाहरण: max(${father_age}, ${mother_age}) माँ या पिता की आयु return करेगा, जो भी बड़ी हो।
  • format-number(field): एक integer या decimal field के मूल्य को user की locale settings के अनुसार format करता है।

    • उदाहरण: format-number(${income}) “120000” को “120,000” के रूप में format कर सकता है।
  • round(field, digits): numeric field मूल्य को decimal place के बाद निर्दिष्ट digits की संख्या तक round करता है।

    • उदाहरण: round(${interest_rate}, 2)
  • abs(number): एक number का absolute value return करता है।

  • pow(base, exponent): पहले parameter का मूल्य दूसरे parameter की power तक उठाया हुआ return करता है।

    • प्रत्येक parameter एक field, number, या expression हो सकता है।
  • log10(fieldorvalue): पास किए गए field या value का base-ten logarithm return करता है।

  • sin(fieldorvalue): पास किए गए field या value का sine return करता है, radians में expressed।

  • cos(fieldorvalue): पास किए गए field या value का cosine return करता है, radians में expressed।

  • tan(fieldorvalue): पास किए गए field या value का tangent return करता है, radians में expressed।

  • asin(fieldorvalue): पास किए गए field या value का arcsine return करता है, radians में expressed।

  • acos(fieldorvalue): पास किए गए field या value का arccosine return करता है, radians में expressed।

  • atan(fieldorvalue): पास किए गए field या value का arctangent return करता है, radians में expressed।

  • atan2(x, y): origin पर coordinate (x, y) वाले point और positive x-axis से subtended angle return करता है radians में। परिणाम -pi() से pi() की range में है।

  • sqrt(fieldorvalue): पास किए गए field या value का non-negative square root return करता है।

  • exp(x): e^x का मूल्य return करता है।

  • pi(): pi का मूल्य return करता है।

Date और time functions

  1. today(): आज की तारीख को YYYY-MM-DD format में string के रूप में return करता है। form खुलने पर एक बार evaluate होता है।

    • उदाहरण: today()'2024-03-15'
    • सामान्य उपयोग: आज की तारीख pre-fill करने के लिए default column, या date field की तुलना करने के लिए relevant/constraint में।
  2. now(): वर्तमान date और time को ISO 8601 string के रूप में return करता है। हर बार expression compute होने पर evaluate होता है।

    • उदाहरण: now()'2024-03-15T14:32:00.000+03:00'
    • सामान्य उपयोग: survey के दौरान किसी specific event का exact timestamp recording करना।
  3. date(value): एक value (string या number) को date string में convert करता है। Calculated values को date type में coerce करने के लिए उपयोगी।

    • उदाहरण: date('2024-03-15')'2024-03-15'
  4. date-time(value): एक value को datetime string में convert करता है।

    • उदाहरण: date-time(${event_timestamp})
  5. decimal-date-time(value): एक date या datetime string को Unix epoch के बाद milliseconds को 86400000 से divide करके (यानी 1970-01-01 के बाद fractional days) एक decimal number में convert करता है। Dates पर arithmetic perform करने के लिए इसका उपयोग करें।

    • उदाहरण: दो dates के बीच days में duration: decimal-date-time(${end_date}) - decimal-date-time(${start_date})
    • उदाहरण: दो datetimes के बीच minutes में duration: (decimal-date-time(${end_time}) - decimal-date-time(${start_time})) * 1440
  6. format-date(date, format): एक pattern string का उपयोग करके date value को format करता है।

    • Format tokens: %Y (4-digit year), %y (2-digit year), %m (month 01–12), %d (day 01–31), %a (abbreviated weekday), %b (abbreviated month name)
    • उदाहरण: format-date(today(), '%d/%m/%Y')'15/03/2024'
    • उदाहरण: format-date(${dob}, '%B %d, %Y')'March 15, 1990'
  7. format-date-time(datetime, format): एक pattern string का उपयोग करके datetime value को format करता है। सभी format-date tokens के अलावा स्वीकार करता है:

    • %H (hour 00–23), %h (hour 01–12), %M (minutes 00–59), %S (seconds 00–59), %3 (milliseconds), %P (AM/PM)
    • उदाहरण: format-date-time(now(), '%d/%m/%Y %H:%M')'15/03/2024 14:32'
    • उदाहरण: format-date-time(${event_time}, '%I:%M %p')'02:32 PM'

Boolean functions

  1. boolean(value): किसी भी value को boolean में convert करता है। non-empty strings, non-zero numbers, और true के लिए true return करता है; empty strings, 0, और false के लिए false return करता है।

    • उदाहरण: boolean(${name}) true return करता है यदि name empty नहीं है।
  2. boolean-from-string(string): true return करता है यदि string '1' या 'true' है (case-insensitive); अन्यथा false return करता है।

    • उदाहरण: boolean-from-string(${enabled_flag}) — तब उपयोगी जब कोई field text के रूप में 'true'/'false' संग्रहीत करता है।
  3. true(): boolean मूल्य true return करता है।

    • उदाहरण: required column में, true() yes के समान है।
  4. false(): boolean मूल्य false return करता है।

    • उदाहरण: if(${skip_section} = 'yes', false(), true()) — dynamically required set करें।
  5. not(expression): expression का logical negation return करता है। यदि expression false है तो true return करता है, और इसके विपरीत।

    • उदाहरण: not(${consent} = 'yes') — तब एक warning दिखाएं जब consent नहीं दी गई हो।
    • उदाहरण: not(selected(${issues}, 'none')) — detail की आवश्यकता केवल तभी हो जब “none” नहीं चुना गया हो।

Additional string functions

  1. starts-with(string, prefix): true return करता है यदि string prefix से शुरू होती है।

    • उदाहरण: starts-with(${phone}, '+254') जांचता है कि phone number Kenya country code से शुरू होता है।
  2. contains(string, substring): true return करता है यदि string में substring शामिल है।

    • उदाहरण: contains(${email}, '@') जांचता है कि email address में @ sign है।
    • उदाहरण: contains(${notes}, 'urgent') यदि notes में “urgent” का उल्लेख है तो एक follow-up question trigger करता है।
  3. substring-before(string, needle): string का वह हिस्सा return करता है जो needle के पहले occurrence से पहले आता है।

    • उदाहरण: substring-before(${full_name}, ' ') पहला word (first name) extract करता है।
  4. substring-after(string, needle): string का वह हिस्सा return करता है जो needle के पहले occurrence के बाद आता है।

    • उदाहरण: substring-after(${email}, '@') email address का domain हिस्सा extract करता है।
  5. normalize-space(string): leading और trailing whitespace strip करता है और सभी internal whitespace sequences को एक single space में collapse करता है।

    • उदाहरण: normalize-space(${name}) — एक नाम को clean करता है जो extra spaces के साथ typed हो सकता है।
  6. translate(string, search_chars, replace_chars): string में प्रत्येक character को replace करता है जो search_chars में replace_chars के corresponding character के साथ दिखाई देता है। search_chars में वे characters जिनका replace_chars में कोई corresponding character नहीं है, delete हो जाते हैं।

    • उदाहरण: translate(${code}, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') uppercase में convert करता है (upper() के समान)।
    • उदाहरण: translate(${phone}, ' -()', '') phone number से spaces, dashes, और parentheses हटाता है।

Additional math functions

  1. floor(number): number से कम या बराबर सबसे बड़ा integer return करता है (negative infinity की ओर round करता है)।

    • उदाहरण: floor(4.9) = 4, floor(-2.1) = -3
  2. ceiling(number): number से अधिक या बराबर सबसे छोटा integer return करता है (positive infinity की ओर round करता है)।

    • उदाहरण: ceiling(4.1) = 5, ceiling(-2.9) = -2
  3. random(): 0.0 (inclusive) और 1.0 (exclusive) के बीच एक random decimal number return करता है। आमतौर पर calculate fields में random values assign करने या question order randomize करने के लिए उपयोग किया जाता है।

    • उदाहरण: random() → जैसे, 0.7341
    • उदाहरण: int(random() * 6) + 1 → random number 1–6 (dice roll)
  4. coalesce(a, b): यदि a non-empty है तो a return करता है; अन्यथा b return करता है। तब fallback के रूप में उपयोगी जब एक field empty हो सकती है।

    • उदाहरण: coalesce(${preferred_name}, ${full_name}) — यदि set हो तो preferred name का उपयोग करें, अन्यथा full name पर fall back करें।
  5. once(value): value को evaluate करके store करता है, लेकिन केवल तभी जब current field empty हो। यदि field में पहले से कोई value है (जैसे, पहले set की गई थी), तो once() existing value को unchanged return करता है। यह recalculation को user input overwrite करने से रोकता है।

    • उदाहरण: default column में once(today()) आज की तारीख एक बार set करता है और update नहीं होता यदि गणनाकर्ता form को re-open करे।
    • उदाहरण: once(uuid()) एक UUID एक बार generate करता है और re-edits के दौरान इसे stable रखता है।

Geo functions

  1. area(geoshape_value): एक geoshape (polygon) value द्वारा enclosed area square meters में calculate करता है।

    • Parameter lat1 lon1 0 0; lat2 lon2 0 0; ... format में एक geoshape field value है
    • उदाहरण: area(${field_boundary}) — m² में surveyed field का area calculate करें।
    • उदाहरण: round(area(${field_boundary}) div 10000, 2) — hectares में convert करें।
  2. distance(coordinates): एक geotrace (line) की total path length meters में calculate करता है, या दो geopoints के बीच की distance।

    • एक geotrace के लिए: distance(${route}) meters में total path length return करता है।
    • दो geopoints के लिए: distance(concat(${point_a}, ' ', ${point_b})) उनके बीच की distance return करता है।
    • उदाहरण: round(distance(${road_trace}) div 1000, 3) — kilometers में road की length।

Validation functions

  1. regex(value, pattern): true return करता है यदि value regular expression pattern से match करती है। pattern-based validation के लिए constraint column में उपयोग करें।

    • Pattern standard regex syntax (POSIX ERE subset) का उपयोग करता है।
    • उदाहरण: regex(., '^[0-9]{10}$') — 10-digit number validate करें।
    • उदाहरण: regex(., '^[A-Z]{2}[0-9]{6}$') — passport number format validate करें (2 uppercase letters followed by 6 digits)।
    • उदाहरण: regex(., '^[^@]+@[^@]+\.[^@]{2,}$') — basic email format check।
  2. checklist(min, max, v1, v2, ...): boolean expressions की एक list evaluate करता है और true return करता है यदि true values की संख्या min और max के बीच (inclusive) हो। उस bound को skip करने के लिए min या max के लिए -1 pass करें।

    • उदाहरण: checklist(2, 3, ${q1} = 'yes', ${q2} = 'yes', ${q3} = 'yes') — पास होता है यदि तीन conditions में से ठीक 2 या 3 true हों।
    • उदाहरण: checklist(1, -1, ${smoke_alarm}, ${fire_ext}, ${emergency_plan}) — कम से कम एक safety measure true होना चाहिए।
  3. weighted-checklist(min, max, v1, w1, v2, w2, ...): checklist() की तरह, लेकिन प्रत्येक value का एक weight है। true values के weights का sum min और max के बीच होना चाहिए।

    • उदाहरण: weighted-checklist(10, -1, ${has_toilet}, 4, ${has_sink}, 3, ${has_shower}, 5) — present facilities के weights का sum कम से कम 10 होना चाहिए।

Utility functions

  1. uuid(): एक random UUID (RFC 4122 v4 format) को string के रूप में generate करता है।

    • उदाहरण: uuid()'a3f8b2c1-4d5e-6f7a-8b9c-0d1e2f3a4b5c'
    • आमतौर पर stable unique ID generate करने के लिए once() के साथ उपयोग किया जाता है: once(uuid())
  2. version(): settings worksheet में set form के version attribute का मूल्य return करता है।

    • उदाहरण: version()'3.1'
    • exported data में form version embed करने के लिए calculate fields में उपयोगी।
  3. position(): repeat group के अंदर call करने पर, current repeat instance का 1-based index return करता है।

    • उदाहरण: पहले instance में position() 1 return करता है, दूसरे में 2, और इसी तरह।
    • देखें: index() (alias), group के बाहर से repeat values reference करने के लिए indexed-repeat()
  4. thousandsep(length, separator, value): thousands separator के साथ एक number format करता है। length minimum total string length है (यदि छोटा हो तो spaces से padded), separator उपयोग करने के लिए character है (जैसे ','), और value format करने के लिए number है।

    • उदाहरण: thousandsep(0, ',', 1234567)'1,234,567'
    • उदाहरण: thousandsep(0, '.', ${income}) → period को thousands separator के रूप में income format करता है।
  5. substr-jsonpath(value, jsonpath): JSONPath expression का उपयोग करके JSON string से substring extract करता है।

    • उदाहरण: substr-jsonpath(${api_response}, '$.data.name')api_response में stored JSON string से name field extract करता है।
    • आमतौर पर API responses से specific values extract करने के लिए callapi() के साथ उपयोग किया जाता है।
क्या यह पृष्ठ सहायक था?