ฟังก์ชัน
ฟังก์ชันสตริง
เมื่อทำงานกับสตริงในนิพจน์ สำคัญที่ต้องใช้เครื่องหมายคำพูดเดี่ยว (’’) เพื่อล้อมสตริงตัวอักษร อย่างไรก็ตาม ข้อยกเว้นเกิดขึ้นเมื่อต้องการรวมเครื่องหมายคำพูดเดี่ยวในสตริงตัวอักษร ในกรณีนั้น คุณสามารถใช้เครื่องหมายคำพูดคู่ ("") เพื่อล้อมสตริงทั้งหมด
rtSurvey รองรับฟังก์ชันต่างๆ รวมถึง:
string(field): แปลงฟิลด์เป็นสตริง- ตัวอย่าง:
string(34.8)จะถูกแปลงเป็น'34.8'
- ตัวอย่าง:
string-length(field): ส่งคืนความยาวของฟิลด์สตริง- ตัวอย่าง:
string-length(.) > 3 and string-length(.) < 10
- ตัวอย่าง:
substr(fieldorstring, startindex, endindex): ส่งคืน substring เริ่มต้นที่startindexและสิ้นสุดก่อนendindex- ตัวอย่าง:
substr(${phone}, 0, 3)จะส่งคืนสามหลักแรกของหมายเลขโทรศัพท์
- ตัวอย่าง:
concat(a, b, c, ...): เชื่อมต่อฟิลด์และ/หรือสตริงเข้าด้วยกัน- ตัวอย่าง:
concat(${firstname}, ' ', ${lastname})จะส่งคืนชื่อเต็ม
- ตัวอย่าง:
linebreak(): ส่งคืนอักขระขึ้นบรรทัดใหม่lower(): แปลงสตริงเป็นอักษรตัวพิมพ์เล็กทั้งหมดupper(): แปลงสตริงเป็นอักษรตัวพิมพ์ใหญ่ทั้งหมด
ฟังก์ชัน select_one และ select_multiple
count-selected(field): ส่งคืนจำนวนรายการที่เลือกในฟิลด์ select_multipleselected(field, value): ส่งคืน true หรือ false ขึ้นอยู่กับว่าเลือกค่าที่ระบุในฟิลด์หรือไม่- ตัวอย่าง:
selected(${color}, 'Blue')
- ตัวอย่าง:
selected-at(field, number): ส่งคืนรายการที่เลือกที่ตำแหน่งที่ระบุในฟิลด์ select_multiplechoice-label(field, value): ส่งคืนป้ายกำกับสำหรับตัวเลือกฟิลด์ select_one หรือ select_multiple
ฟังก์ชันฟิลด์ซ้ำ
join(string, repeatedfield): สำหรับฟิลด์ในกลุ่ม repeat สร้างรายการที่คั่นด้วยสตริงcount(repeatgroup): ส่งคืนจำนวนครั้งปัจจุบันที่กลุ่ม repeat ทำซ้ำsum(repeatedfield): สำหรับฟิลด์ในกลุ่ม repeat คำนวณผลรวมของค่าทั้งหมดmin(repeatedfield): สำหรับฟิลด์ในกลุ่ม repeat คำนวณค่าต่ำสุดของค่าทั้งหมดmax(repeatedfield): สำหรับฟิลด์ในกลุ่ม repeat คำนวณค่าสูงสุดของค่าทั้งหมดindexed-repeat(repeatedfield, repeatgroup, index): อ้างอิงฟิลด์ที่อยู่ในกลุ่ม repeat จากภายนอกกลุ่ม repeat นั้น
ฟังก์ชันตัวเลข
| Operator | Operation | Example | Example answer |
|---|---|---|---|
+ | Addition | 1 + 1 | 2 |
- | Subtraction | 3 - 2 | 1 |
* | Multiplication | 3 * 2 | 6 |
div | Division | 10 div 2 | 5 |
mod | Modulus | 9 mod 2 | 1 |
rtSurvey รองรับฟังก์ชันตัวเลข รวมถึง:
number(field): แปลงค่าของฟิลด์เป็นตัวเลขint(field): แปลงค่าของฟิลด์เป็นจำนวนเต็มround(field, digits): ปัดเศษค่าฟิลด์ตัวเลขเป็นจำนวนหลักที่ระบุabs(number): ส่งคืนค่าสัมบูรณ์ของตัวเลขpow(base, exponent): ส่งคืนค่าของพารามิเตอร์แรกยกกำลังพารามิเตอร์ที่สองsqrt(fieldorvalue): ส่งคืนรากที่สองที่ไม่ติดลบpi(): ส่งคืนค่าของ pi
ฟังก์ชันวันที่และเวลา
ค่าวันที่ใน rtSurvey จัดเก็บเป็นสตริงในรูปแบบ YYYY-MM-DD ค่า datetime จัดเก็บเป็นสตริง ISO 8601 (YYYY-MM-DDTHH:MM:SS) ใช้ decimal-date-time() เพื่อแปลงเป็นตัวเลขสำหรับการคำนวณ
today(): ส่งคืนวันที่วันนี้เป็นสตริงในรูปแบบYYYY-MM-DDnow(): ส่งคืนวันที่และเวลาปัจจุบันเป็นสตริง ISO 8601decimal-date-time(value): แปลงสตริงวันที่หรือ datetime เป็นตัวเลขทศนิยม ใช้เพื่อทำการคำนวณทางคณิตศาสตร์กับวันที่format-date(date, format): จัดรูปแบบค่าวันที่โดยใช้สตริงรูปแบบformat-date-time(datetime, format): จัดรูปแบบค่า datetime โดยใช้สตริงรูปแบบ
ฟังก์ชัน Boolean
boolean(value): แปลงค่าใดๆ เป็น booleannot(expression): ส่งคืนค่า negation เชิงตรรกะของนิพจน์true(): ส่งคืนค่า boolean truefalse(): ส่งคืนค่า boolean false
ฟังก์ชันทางภูมิศาสตร์
area(geoshape_value): คำนวณ พื้นที่เป็นตารางเมตร ที่ล้อมรอบด้วย geoshape (รูปหลายเหลี่ยม)distance(coordinates): คำนวณ ความยาวเส้นทางรวมเป็นเมตร ของ geotrace (เส้น)
ฟังก์ชันการตรวจสอบ
regex(value, pattern): ส่งคืน true ถ้าvalueตรงกับนิพจน์ปกติpatternchecklist(min, max, v1, v2, ...): ประเมินรายการนิพจน์ boolean
ฟังก์ชันอรรถประโยชน์
uuid(): สร้าง UUID แบบสุ่ม (รูปแบบ RFC 4122 v4)position(): เมื่อเรียกภายในกลุ่ม repeat ส่งคืนดัชนีแบบ 1-based ของอินสแตนซ์ repeat ปัจจุบันcoalesce(a, b): ส่งคืนaถ้าaไม่ว่าง มิฉะนั้นส่งคืนbonce(value): ประเมินvalueและเก็บไว้ แต่เฉพาะถ้าฟิลด์ปัจจุบัน ว่าง เท่านั้น