Bỏ qua câu hỏi (Skip logic)
Skip logic, còn được gọi là rẽ nhánh hoặc logic có điều kiện, cho phép bạn tạo các bản khảo sát động thích ứng với câu trả lời của người khảo sát. Trong rtSurvey, skip logic được triển khai bằng cột relevant trong XLSForm của bạn.
Skip Logic cơ bản
Để triển khai skip logic cơ bản, hãy sử dụng cột relevant để chỉ định một điều kiện:
| type | name | label | relevant |
|----------------|---------------|-----------------------------|--------------------|
| select_one y_n | likes_pizza | Bạn có thích pizza không? | |
| select_multiple pizza_toppings | favorite_topping | Các loại topping yêu thích | ${likes_pizza} = 'yes' |
Trong ví dụ này, câu hỏi “Các loại topping yêu thích” chỉ xuất hiện nếu người trả lời chọn “yes” cho câu hỏi thích pizza.
Cú pháp cho các biểu thức Relevant
- Sử dụng
${ }để tham chiếu đến các biến câu hỏi khác. - Đối với câu hỏi
select_one, hãy so sánh trực tiếp:${question_name} = 'answer' - Đối với câu hỏi
select_multiple, hãy sử dụng hàmselected().
Skip Logic nâng cao
Kết hợp nhiều điều kiện
Bạn có thể kết hợp nhiều điều kiện bằng cách sử dụng and, or, và dấu ngoặc đơn:
| type | name | label | relevant |
|---------|-------|-------------------------|-------------------------------------------|
| integer | age | Bạn bao nhiêu tuổi? | |
| text | school| Bạn học trường nào? | ${age} < 18 and (${location} = 'urban' or ${location} = 'suburban') |
Sử dụng câu hỏi select_multiple
Đối với câu hỏi select_multiple, hãy sử dụng hàm selected():
| type | name | label | relevant |
|----------------|---------------|-----------------------------|-----------------------------------------|
| select_multiple pizza_toppings | favorite_topping | Các loại topping yêu thích | |
| text | cheese_type | Loại phô mai yêu thích | selected(${favorite_topping}, 'cheese') |
Lựa chọn “Khác” (Other) trong Câu hỏi nhiều lựa chọn
Triển khai tùy chọn “Khác” bằng văn bản tự do bằng cách sử dụng relevant:
| type | name | label | relevant |
|----------------|----------------------|-------------------------------------|---------------------------------------|
| select_multiple pizza_toppings | favorite_toppings | Tên các loại topping pizza yêu thích của bạn? | |
| text | favorite_toppings_other | Những loại topping khác bạn thích là gì? | selected(${favorite_toppings}, 'other') |
Hãy nhớ bao gồm ‘other’ như một lựa chọn trong bảng tính choices của bạn.
Các tính năng dành riêng cho rtSurvey
Relevant động (Dynamic Relevance)
rtSurvey cho phép điều kiện hiển thị động dựa trên các trường tính toán:
| type | name | label | calculation |
|-----------|------------|--------------------|-----------------------------|
| calculate | total_score| Tổng điểm | ${score1} + ${score2} + ${score3} |
| text | feedback | Phản hồi | ${total_score} > 75 |
Relevant trong Nhóm lặp (Repeats)
rtSurvey hỗ trợ điều kiện hiển thị bên trong các nhóm lặp:
| type | name | label | relevant |
|--------------|--------------|------------------|------------------------|
| begin repeat | child_info | Thông tin về trẻ | |
| integer | child_age | Tuổi của trẻ | |
| text | school_name | Tên trường học | ${child_age} >= 5 |
| end repeat | | | |
Relevant phân tầng (Cascading Relevance)
rtSurvey xử lý hiệu quả các relevant phân tầng, trong đó điều kiện hiển thị của câu hỏi này phụ thuộc vào câu hỏi khác, và câu hỏi đó lại phụ thuộc vào câu hỏi thứ ba:
| type | name | label | relevant |
|----------------|-------------|------------------------|------------------------|
| select_one y_n | has_car | Bạn có sở hữu ô tô không? | |
| select_one car_type | car_type | Loại ô tô gì? | ${has_car} = 'yes' |
| text | model | Model cụ thể | ${car_type} = 'sedan' |
Các phương pháp hay nhất cho Skip Logic trong rtSurvey
- Giữ sự đơn giản: Tránh các điều kiện hiển thị quá phức tạp khi có thể.
- Kiểm thử kỹ lưỡng: Sử dụng tính năng xem trước (preview) của rtSurvey để kiểm tra tất cả các nhánh có thể xảy ra trong khảo sát.
- Xem xét hiệu suất:
Skip logicrất phức tạp có thể ảnh hưởng đến hiệu suất khảo sát, đặc biệt là trên các thiết bị di động. - Sử dụng tên biến rõ ràng: Điều này giúp các biểu thức hiển thị dễ đọc và dễ bảo trì hơn.
- Tài liệu hóa logic của bạn: Thêm ghi chú để giải thích các mẫu nhảy (skip pattern) phức tạp, đặc biệt là khi làm việc theo nhóm.
- Lưu ý đến Phân tích dữ liệu: Các câu hỏi bị bỏ qua sẽ dẫn đến dữ liệu bị thiếu. Hãy lập kế hoạch phân tích phù hợp.
Khắc phục sự cố Skip Logic
- Lỗi cú pháp: Đảm bảo tất cả các dấu ngoặc
${ }được đóng đúng cách và viết đúng chính tả. - Tham chiếu vòng: Tránh tạo ra các vòng lặp nơi các câu hỏi phụ thuộc lẫn nhau.
- Phân biệt chữ hoa chữ thường: Hãy nhớ rằng các lựa chọn trả lời có phân biệt chữ hoa chữ thường trong các biểu thức hiển thị.
- So sánh số: Sử dụng các toán tử thích hợp (
<,>,=) cho các so sánh số.