Nhóm lặp (Repeating)
Vòng lặp (repeats) là một tính năng mạnh mẽ trong rtSurvey cho phép bạn thu thập cùng một nhóm thông tin nhiều lần trong một bản khảo sát duy nhất. Điều này đặc biệt hữu ích cho các tình huống như khảo sát hộ gia đình, nơi bạn có thể cần thu thập dữ liệu về nhiều thành viên trong hộ gia đình.
Cấu trúc Nhóm lặp cơ bản
Để tạo một vòng lặp trong rtSurvey, hãy sử dụng cấu trúc begin repeat và end repeat:
| type | name | label |
|--------------|--------------|----------------------|
| begin repeat | child_repeat | |
| text | name | Tên của trẻ |
| decimal | birthweight | Cân nặng khi sinh |
| select_one male_female | sex | Giới tính của trẻ |
| end repeat | | |
Trong ví dụ này, người dùng có thể thu thập thông tin về nhiều trẻ bằng cách thêm các vòng lặp mới trong biểu mẫu.
Đặt nhãn cho Nhóm lặp
Mặc dù cột label là tùy chọn đối với begin repeat, nhưng việc thêm nhãn có thể cải thiện việc điều hướng:
| type | name | label |
|--------------|--------------|----------------------|
| begin repeat | child_repeat | Thông tin về trẻ |
| text | name | Tên của trẻ |
| decimal | birthweight | Cân nặng khi sinh |
| select_one male_female | sex | Giới tính của trẻ |
| end repeat | | |
rtSurvey sẽ hiển thị “Thông tin về trẻ” làm tiêu đề cho mỗi thực thể lặp lại.
Số lượng lặp cố định
Để chỉ định một số lượng vòng lặp cố định, hãy sử dụng cột repeat_count:
| type | name | label | repeat_count |
|--------------|--------------|----------------------|--------------|
| begin repeat | child_repeat | Thông tin về trẻ | 3 |
| text | name | Tên của trẻ | |
| decimal | birthweight | Cân nặng khi sinh | |
| end repeat | | | |
Cấu hình này sẽ tạo ra chính xác 3 lượt lặp thông tin trẻ em.
Số lượng lặp động
rtSurvey hỗ trợ số lượng lặp động dựa trên câu trả lời trước đó:
| type | name | label | repeat_count |
|----------|----------------|--------------------------------|--------------------|
| integer | num_hh_members | Số lượng thành viên hộ gia đình?| |
| begin repeat | hh_member | Thành viên hộ gia đình | ${num_hh_members} |
| text | name | Tên | |
| integer | age | Tuổi | |
| end repeat | | | |
Nhóm lặp có điều kiện
Bạn có thể sử dụng cột relevant để hiển thị các vòng lặp theo điều kiện:
| type | name | label | relevant |
|-------------------|-------------|---------------------------|---------------------|
| select_one yes_no | has_child | Có trẻ em sống ở đây không?| |
| begin repeat | child_repeat| Thông tin về trẻ | ${has_child} = 'yes'|
| text | name | Tên của trẻ | |
| decimal | birthweight | Cân nặng khi sinh | |
| end repeat | | | |
Các tính năng dành riêng cho rtSurvey
Tóm tắt Nhóm lặp (Repeat Summary)
rtSurvey cung cấp một chế độ xem tóm tắt cho các vòng lặp. Để tùy chỉnh tóm tắt, hãy sử dụng một nhóm bên trong vòng lặp:
| type | name | label |
|--------------|--------------|------------------------------------------|
| begin repeat | person_repeat| |
| begin group | person | ${first_name} ${last_name} - ${age} |
| text | first_name | Họ |
| text | last_name | Tên |
| integer | age | Tuổi |
| end group | | |
| end repeat | | |
Tùy chọn hiển thị Nhóm lặp
rtSurvey cung cấp các tùy chọn hiển thị bổ sung cho các vòng lặp:
appearance: field-list- Hiển thị tất cả các câu hỏi trong một lượt lặp trên một màn hình duy nhất.appearance: table-list- Trình bày các lượt lặp dưới định dạng bảng.
| type | name | label | appearance |
|--------------|--------------|-------------------|-------------|
| begin repeat | child_repeat | Thông tin về trẻ | table-list |
| text | name | Tên | |
| integer | age | Tuổi | |
| end repeat | | | |
Nhóm lặp lồng nhau (Nested Repeats)
rtSurvey hỗ trợ các vòng lặp lồng nhau cho các cấu trúc dữ liệu phức tạp:
| type | name | label |
|--------------|----------------|----------------------|
| begin repeat | household | Hộ gia đình |
| text | hh_name | Tên hộ gia đình |
| begin repeat | hh_member | Thành viên hộ gia đình|
| text | member_name | Tên thành viên |
| integer | member_age | Tuổi thành viên |
| end repeat | | |
| end repeat | | |
Các phương pháp hay nhất khi sử dụng Nhóm lặp
- Sử dụng tên và nhãn có ý nghĩa cho các vòng lặp để cải thiện việc phân tích dữ liệu.
- Cân nhắc sử dụng số lượng lặp động để giảm lỗi nhập liệu.
- Kiểm tra biểu mẫu của bạn một cách kỹ lưỡng, đặc biệt khi sử dụng các vòng lặp lồng nhau phức tạp.
- Sử dụng tính năng tóm tắt để giúp điều tra viên điều hướng qua danh sách dài các lượt lặp.
- Cẩn trọng với số lượng lượt lặp lớn, vì chúng có thể ảnh hưởng đến hiệu suất của biểu mẫu.
Xử lý trường hợp lặp bằng không
Để thể hiện trường hợp không có lượt lặp nào trong rtSurvey:
- Hướng dẫn điều tra viên xóa lượt lặp đầu tiên nếu không cần thiết.
- Sử dụng số lượng lặp động khi biết trước số lượng chính xác.
- Sử dụng
relevantđể hiển thị vòng lặp theo điều kiện.
Lưu ý về Xuất dữ liệu
Khi xuất dữ liệu từ rtSurvey, dữ liệu vòng lặp thường được làm phẳng (flattened). Mỗi thực thể lượt lặp trở thành một hàng riêng biệt trong dữ liệu xuất, với dữ liệu của biểu mẫu cha được lặp lại cho mỗi thực thể.
Lưu ý cho Ứng dụng di động
- Vòng lặp trong ứng dụng di động rtSurvey hỗ trợ thu thập dữ liệu ngoại tuyến.
- Số lượng lượt lặp lớn có thể ảnh hưởng đến hiệu suất ứng dụng trên các thiết bị cấu hình thấp.