Cấu trúc khảo sát Giá trị được phân tách bằng tab
From LimeSurvey Manual
Nhập và xuất giá trị được phân tách bằng tab của cấu trúc khảo sát
Tính năng này được thiết kế để giúp bạn dễ dàng sử dụng phần mềm bảng tính như LibreOffice, Excel hoặc Google Docs để soạn thảo và chỉnh sửa khảo sát. Nó loại bỏ hoàn toàn sự phụ thuộc vào mã SGQA.
Tính năng này hỗ trợ nhập từ các tệp Giá trị phân tách bằng tab (TSV) được mã hóa ASCII hoặc UTF-8 có phần mở rộng là .txt.
Bắt đầu
Cách dễ nhất là thực hiện một khảo sát hiện có và xuất nó ở định dạng Giá trị được phân tách bằng tab. Sử dụng nút khảo sát xuất thông thường và thay vì chọn định dạng .lss, hãy chọn "Định dạng giá trị được phân tách bằng tab (*.txt)". Nó sẽ được lưu dưới dạng tệp Giá trị được phân tách bằng tab ở định dạng thích hợp (tệp unicode được phân cách bằng tab), với tất cả các tiêu đề cột chính xác.
Bất kỳ phần mềm bảng tính nào hỗ trợ các giá trị được phân tách bằng tab đều ổn (ví dụ: OpenOffice hoặc LibreOffice). LimeSurvey bỏ qua mọi định dạng trong bảng tính nhưng bạn có thể thoải mái thêm một số định dạng nếu điều đó giúp ích cho bạn.
Sẽ có một hàng cho mỗi nhóm, câu hỏi, câu hỏi phụ và câu trả lời. Ngoài ra còn có các hàng dành cho các biến khảo sát toàn cầu và các biến khảo sát theo ngôn ngữ cụ thể. Ngôn ngữ chính sẽ được liệt kê đầu tiên, tiếp theo là bất kỳ ngôn ngữ phụ nào. Vì vậy, nếu có nhiều ngôn ngữ, toàn bộ nội dung của ngôn ngữ cơ sở sẽ xuất hiện đầu tiên (ví dụ: tất cả các nhóm, câu hỏi, câu hỏi phụ và câu trả lời). Tiếp theo là bản dịch cho từng ngôn ngữ thứ cấp (với số lượng và thứ tự hoặc hàng giống hệt nhau cho bộ đã dịch).
Các mối quan hệ được suy ra bởi sự gần gũi. Vì vậy, những câu hỏi theo sau một nhóm là một phần của nhóm đó; các câu hỏi phụ theo sau một câu hỏi là một phần của câu hỏi đó và các câu trả lời theo sau một câu hỏi là một phần của câu hỏi đó. Vì vậy, bạn không cần biết ID (gid, qid, sqid) cho bất kỳ câu hỏi nào. Chúng sẽ được tính toán tự động khi nhập. Trên thực tế, định dạng này hoàn toàn không sử dụng gid, qid hoặc sqid (hoặc mã SGQA).
Mẹo
Mục tiêu của việc nhập/xuất Giá trị phân tách bằng tab là cho phép bạn nhanh chóng thiết kế khảo sát của mình bằng bảng tính. Chúng tôi hy vọng rằng bạn sẽ thường xuyên nhập trang tính, kiểm tra tính hợp lệ của nó bằng tính năng "Hiển thị logic khảo sát" và kiểm tra nó. Mỗi lần bạn nhập nó, bạn sẽ nhận được một cuộc khảo sát mới. Vì vậy, bạn có thể kết thúc với nhiều khảo sát được phát triển một phần, nhưng điều đó không sao cả. Chỉ cần tập thói quen theo dõi cái nào là gần đây nhất hoặc xóa cái cũ sau khi bạn nhập cái mới. Vì bạn không bao giờ sử dụng mã SGQA trong Giá trị được phân tách bằng tab nên bạn không bao giờ cần phải lo lắng về mã mà LimeSurvey chỉ định cho các khóa khảo sát, nhóm, câu hỏi và câu trả lời chính. Vì vậy, hãy thoải mái nhập và xuất bao nhiêu lần tùy thích.
Dưới đây là một số điều thuận tiện mà bạn có thể thực hiện với phương pháp tiếp cận công cụ soạn thảo này:
- Sử dụng cùng một câu trả lời cho nhiều câu hỏi. Chỉ cần sao chép các hàng 'A' và dán sau mỗi câu hỏi cần có cùng một bộ.
- Sử dụng cùng một câu hỏi phụ cho nhiều câu hỏi. Chỉ cần sao chép các hàng 'SQ' và dán chúng sau mỗi câu hỏi cần đến nó.
- "Lặp lại" - sử dụng cùng một nhóm nhiều lần. Sau khi nhóm đã theo cách bạn muốn, hãy sao chép nhóm đó nhiều lần nếu cần. Sử dụng tính năng lọc Excel để chỉ xem các hàng 'G' (dành cho nhóm) và sử dụng tính năng kéo cột Excel để cập nhật các phương trình liên quan cho từng nhóm (ví dụ: đối với một cuộc điều tra dân số, mức độ liên quan đầu tiên có thể là "numPeople > 1", tiếp theo phải là "numPeople > 2". Tính năng kéo sẽ tự động cập nhật số). Lọc theo hàng 'Q' và đảm bảo rằng mỗi câu hỏi có một giá trị duy nhất (ví dụ: giả sử bạn đặt tên cho các biến là g1_q1, g1_q2, g1_qN, sử dụng tìm/thay thế để chuyển đổi g1 thành g2 nhóm thứ hai; g3 cho nhóm thứ ba, v.v.) .
- Sắp xếp lại câu hỏi/nhóm. Chỉ cần sắp xếp lại các hàng của tệp bảng tính.
- Thử nghiệm các mô-đun khảo sát. Đối với các cuộc khảo sát dài, bạn có thể muốn chia thử nghiệm thành các mô-đun. Chỉ cần tạo các tệp bảng tính mới cho mỗi mô-đun, xóa mọi hàng bạn không cần. Điều này tránh việc phải nhập nhiều dữ liệu để kiểm tra các phần sau của cuộc khảo sát.
- Kiểm tra các câu hỏi bắt buộc. Lời phàn nàn phổ biến không phải là bắt buộc phải đưa ra nhiều câu hỏi mà là phải tắt tính năng bắt buộc đi thi. Chỉ cần tạo bảng tính chính với giá trị bắt buộc được đặt thành các giá trị mong muốn cuối cùng. Sau đó, để kiểm tra, bạn chỉ cần xóa cột "bắt buộc" và lưu phiên bản thử nghiệm của bảng tính. Khi bạn nhập phiên bản đó, sẽ không có câu hỏi nào là bắt buộc. Sau khi bạn hoàn thành việc kiểm tra, hãy nhập bản sao chính.
- Đặt mặc định. Thay vì sử dụng GUI, bạn có thể nhập bất kỳ giá trị mặc định mong muốn nào vào cột mặc định. Điều này đặc biệt hữu ích trong trường hợp GUI không cho phép bạn nhập giá trị mong muốn, chẳng hạn như biểu thức để đặt mặc định cho các mục danh sách (chẳng hạn như điền danh sách từ [[Người tham gia khảo sát|người tham gia khảo sát] ] thuộc tính).
- Dịch. Bạn có thể tạo bản sao bảng tính của mình - mỗi bản sao cho mỗi ngôn ngữ. Bao gồm tất cả các hàng cho ngôn ngữ chính, sau đó sao chép và dán chúng bên dưới, đồng thời sử dụng thao tác kéo để thay đổi trường ngôn ngữ sang ngôn ngữ đích. Chúng có thể được phân phối cho người dịch của bạn và được tích hợp lại vào một tệp bảng tính khi hoàn tất.
- Cài đặt hàng loạt thuộc tính câu hỏi nâng cao. Bạn có thể muốn tất cả các phương trình của mình bắt đầu hiển thị (để bạn có thể thấy giá trị của chúng khi thu thập dữ liệu), nhưng sau đó ẩn tất cả chúng trước khi đưa vào sản xuất. Chỉ cần lọc bảng tính trên class = 'Q' và loại câu hỏi = '*' (phương trình), đồng thời đặt Always_hide thành 1 cho mỗi câu hỏi đó. Tương tự, giả sử sau khi tạo khảo sát, bạn quyết định câu hỏi nào sẽ xuất hiện trong số liệu thống kê công khai. Thay vì chỉnh sửa từng câu hỏi thông qua GUI, hãy lọc trên class = 'Q' và đặt public_statistics = 1 cho tất cả các câu hỏi sẽ hiển thị trong thống kê.
- Tìm và thay thế. Giả sử bạn quyết định cần thay đổi một số cụm từ trong tất cả các câu hỏi của mình, bạn có thể sử dụng tính năng tìm và thay thế trong Excel để thực hiện những thay đổi đó. Tương tự, giả sử bạn quyết định đổi tên hàng loạt các biến của mình, tìm và thay thế có thể giúp ích. Nếu bạn cần tìm và thay thế dựa trên biểu thức chính quy, bạn có thể chọn cột mong muốn, sao chép vào trình soạn thảo văn bản, thực hiện tìm và thay thế rồi dán lại cột vào bảng tính.
- 'Đạt được sự phê duyệt '. Nếu bạn đang thực hiện nghiên cứu, bạn có thể có một Hội đồng Đánh giá Thể chế nhất quyết yêu cầu xem nội dung câu hỏi. Đây có thể là một cách thuận tiện để chia sẻ nó. Tương tự như vậy đối với các cuộc thảo luận với khách hàng.
- Đồng thuận nhóm. Nếu bạn đang cố gắng thuyết phục một nhóm đồng ý về cách diễn đạt hoặc hình thức của một câu hỏi hoặc nhóm, bạn có thể nhanh chóng tạo nguyên mẫu/chỉnh sửa bảng tính, nhập bảng tính đó và hiển thị cho nhóm (thông qua câu hỏi hoặc bản xem trước nhóm) chính xác những gì người dùng sẽ thấy . Bằng cách đó, bạn có thể nhận được sự chấp thuận từ nhóm trước khi họ rời khỏi phòng thay vì phải ghi lại các yêu cầu, xây dựng chúng và nhận được sự chấp thuận trong các cuộc họp trong tương lai.
- Nâng cấp từ các định dạng khảo sát khác. Nếu khảo sát của bạn ở dạng XML, Word hoặc định dạng khác, bạn có thể tạo quy trình dịch để ánh xạ chúng sang định dạng này. Mặc dù bạn cũng có thể thử ánh xạ sang định dạng .lss, nhưng ưu điểm của định dạng này là nó không yêu cầu bạn phải theo dõi các mối quan hệ khóa ngoại giữa các nhóm, câu hỏi, câu hỏi phụ, câu trả lời và giá trị mặc định.
Giới hạn
- Theo thiết kế, tính năng này chỉ hoạt động bình thường đối với các khảo sát sử dụng cách đặt tên qcode (chứ không phải SGQA). Tính năng này giả định rằng tên biến (mã định danh câu hỏi) là duy nhất trong suốt cuộc khảo sát. Tên câu hỏi phụ có thể được lặp lại, miễn là chúng là duy nhất trong phạm vi của một câu hỏi cụ thể.
Định dạng tệp
Chung
Chúng tôi sử dụng cùng một bộ tiêu đề cột cho nhiều mục đích. 14 cột đầu tiên phục vụ các mục đích khác nhau tùy thuộc vào loại thực thể (ví dụ: nhóm, câu hỏi, câu trả lời). Các cột còn lại là danh sách theo thứ tự bảng chữ cái của tên trường cơ sở dữ liệu cho mã câu hỏi nâng cao. Dưới đây là cú pháp cho từng loại thực thể
14 cột đầu tiên là:
- id (New in 3.14.0 )
- similar_id (New in 3.14.0 )
- class
- type/scale
- tên
- sự liên quan
- văn bản
- help
- ngôn ngữ
- xác thực
- bắt buộc
- other
- mặc định
- same_default
Thông số toàn cầu khảo sát
Có một hàng cho mỗi tham số trong bảng khảo sát.
- class => 'S'
- name => tên trường cơ sở dữ liệu
- text => value
Thông số khảo sát theo ngôn ngữ cụ thể
Có một hàng cho mỗi trường cho mỗi ngôn ngữ trong bảng Surveys_Languagesettings. Tất cả các mục nhập cho một ngôn ngữ nhất định sẽ được thu thập trước khi thực hiện chèn vào bảng đó.
- class => 'SL'
- name => tên trường cơ sở dữ liệu
- text => value
- lingu = > ngôn ngữ
Nhóm
Một hàng nhóm cho mỗi ngôn ngữ khảo sát (ví dụ: sẽ có 3 hàng nhóm nếu khảo sát có 3 ngôn ngữ).
- id => mã định danh số duy nhất cho nhóm, bắt đầu bằng số 1, sử dụng cùng một ID cho các ngôn ngữ bổ sung thuộc về nhóm hiện tại
- class => 'G'
- name => group_name -- mã định danh duy nhất cho nhóm
- relevance => grevance -- phương trình liên quan ở cấp độ nhóm, không có dấu ngoặc nhọn
- text => description -- mô tả ngôn ngữ cụ thể của nhóm
- lingu => ngôn ngữ -- ngôn ngữ của nhóm (ví dụ: 'en')
Câu hỏi
Một hàng câu hỏi cho mỗi ngôn ngữ khảo sát (ví dụ: sẽ có 3 hàng câu hỏi nếu khảo sát có 3 ngôn ngữ). Các câu hỏi được coi là thuộc về nhóm đứng trước chúng.
- id => mã định danh số duy nhất cho câu hỏi, bắt đầu bằng số 1, sử dụng cùng một ID cho các ngôn ngữ bổ sung thuộc câu hỏi hiện tại
- class => ' Q'
- type/scale => type -- the (thường là một chữ cái) loại câu hỏi (ví dụ: 'M' là Nhiều lựa chọn)
- name => tiêu đề -- the tên câu hỏi duy nhất (gốc của hệ thống đặt tên qcode)
- relevance => mức độ liên quan -- phương trình liên quan cho câu hỏi
- text => câu hỏi -- ngôn ngữ -văn bản cụ thể của câu hỏi
- help => help -- văn bản trợ giúp theo ngôn ngữ cụ thể
- lingu => ngôn ngữ -- ngôn ngữ dành cho nhóm (ví dụ: 'en')
- validation = > preg -- tiêu chí xác thực biểu thức chính quy tùy chọn cho câu hỏi
- mandatory => bắt buộc -- 'Y' nếu bắt buộc
- other => other -- 'Y' nếu có tùy chọn "Khác" (chỉ dành cho một số loại câu hỏi)
- default => default -- nếu được đặt, giá trị này sẽ được chèn vào bảng giá trị mặc định cho câu hỏi này
- same_default => Same_default -- 'Y' là đúng, trong trường hợp đó mọi giá trị mặc định được đặt cho ngôn ngữ chính đều áp dụng cho các ngôn ngữ khác
Câu hỏi phụ
Một hàng câu hỏi phụ cho mỗi ngôn ngữ khảo sát. Các câu hỏi phụ được coi là thuộc về câu hỏi đứng trước chúng.
- id => cùng một mã định danh số duy nhất được sử dụng cho các câu hỏi. Câu hỏi phụ phải sử dụng giá trị sẵn có tiếp theo, ID câu hỏi và câu hỏi phụ phải khác nhau (ví dụ: sử dụng ID 1 cho câu hỏi và ID 2, 3 và 4 cho câu hỏi phụ thuộc câu hỏi 1, ID câu hỏi tiếp theo phải là 5, v.v.). Sử dụng cùng một ID câu hỏi phụ cho các ngôn ngữ bổ sung thuộc các câu hỏi phụ hiện tại.
- class => 'SQ'
- type/scale =>scale_id -- 0 hoặc 1, tùy thuộc vào loại câu hỏi (ví dụ: văn bản mảng sẽ có hai scales)
- name => tiêu đề -- "tên" của câu hỏi phụ, ví dụ: tên được sử dụng cho loại trừ_all_others
- relevance => mức độ liên quan -- (Tương lai) để hỗ trợ mức độ liên quan ở cấp độ câu hỏi phụ
- text => câu hỏi -- văn bản dành riêng cho ngôn ngữ của câu hỏi phụ
- help => help -- (Tương lai) để hỗ trợ trợ giúp ở cấp độ câu hỏi phụ
- ngôn ngữ => ngôn ngữ -- ngôn ngữ cho câu hỏi phụ
#validation => preg -- (Tương lai) để hỗ trợ xác thực biểu thức chính quy ở cấp câu hỏi phụ (ví dụ: đối với các phần địa chỉ)
- mandatory => bắt buộc -- (Tương lai) để hỗ trợ bắt buộc ở cấp độ câu hỏi phụ (ví dụ: chỉ thực hiện một vài câu hỏi phụ bắt buộc)
- default => mặc định -- nếu được đặt thì đây là giá trị mặc định cho câu hỏi phụ (được chèn vào bảng giá trị mặc định)
- same_default => Same_default -- nếu được đặt thì mặc định cho ngôn ngữ chính được sử dụng cho tất cả các ngôn ngữ khác
Câu trả lời
Một hàng câu trả lời cho mỗi ngôn ngữ khảo sát (ví dụ: sẽ có 3 hàng câu trả lời nếu khảo sát có 3 ngôn ngữ). Các câu trả lời được coi là thuộc về câu hỏi đứng trước chúng và theo thứ tự sắp xếp mong muốn.
- id => sử dụng ID giống như ID của câu hỏi chứa nó
- class => 'A'
- type/scale =>scale_id -- 0 hoặc 1 (ví dụ: đối với thang đo kép)
- name => code -- mã định danh câu trả lời duy nhất
- relevance => đánh giá_value -- nếu sử dụng tùy chọn đánh giá , đây là giá trị đánh giá cho câu trả lời
- text => câu trả lời -- văn bản dành riêng cho ngôn ngữ của câu trả lời
- ngôn ngữ => ngôn ngữ -- ngôn ngữ cho câu trả lời này (ví dụ 'en')
Đánh giá
Một hàng đánh giá cho mỗi ngôn ngữ khảo sát (ví dụ: sẽ có 3 hàng đánh giá nếu khảo sát có 3 ngôn ngữ). Đánh giá được viết ở cuối tệp.
- id => số nhận dạng duy nhất cho đánh giá, bắt đầu bằng số 1, sử dụng cùng một ID cho các ngôn ngữ bổ sung thuộc đánh giá hiện tại
- liên quan_id => id của nhóm tới đánh giá hiện tại thuộc về ai
- class => 'AS'
- type/scale => phạm vi đánh giá: T-Total, G-group
- name => name
- text => tin nhắn
- min_num_value => Tối thiểu
- max_num_value => Tối đa
- ngôn ngữ => ngôn ngữ -- ngôn ngữ cho câu trả lời này (ví dụ 'en')
Hạn ngạch
Một hàng cho mỗi hạn ngạch. Hạn ngạch được ghi ở cuối tệp.
- id => mã định danh số duy nhất cho hạn ngạch, bắt đầu bằng số 1
- class => 'QTA'
- name => tên hạn ngạch
- bắt buộc => limit
- other => hạn ngạch hành động
- default => active
- same_default => URL tự động tải
Cài đặt ngôn ngữ hạn ngạch
Một hàng hạn ngạch cho mỗi ngôn ngữ khảo sát. Cài đặt ngôn ngữ hạn ngạch được giả định thuộc về hạn ngạch trước chúng.
- id => mã định danh số duy nhất cho cài đặt ngôn ngữ hạn ngạch, bắt đầu bằng số 1. Mỗi hàng cho các ngôn ngữ khảo sát khác nhau phải có ID khác nhau
- liên quan_id => id hạn ngạch của hạn ngạch mà cài đặt này thuộc về
- class => 'QTALS'
- relevance => message
- text => URL
- help => URL description
- ngôn ngữ => ngôn ngữ -- ngôn ngữ cho hạn ngạch này (ví dụ 'en')
Số lượng thành viên
Một hàng cho mỗi thành viên hạn ngạch, không phụ thuộc vào ngôn ngữ. Hàng thành viên hạn ngạch phải được đặt ngay sau câu hỏi liên quan đến nó. Thành viên hạn ngạch được giả định thuộc về câu hỏi đặt trước họ.
- id => mã định danh số duy nhất cho các thành viên hạn ngạch, bắt đầu bằng số 1
- liên quan_id => id hạn ngạch của hạn ngạch mà thành viên này thuộc về
- class => 'QTAM'
- name => mã câu trả lời
Điều kiện
Một hàng cho mỗi điều kiện, không phụ thuộc vào ngôn ngữ. Hàng điều kiện phải được đặt ngay sau câu hỏi liên quan đến nó. Các điều kiện được giả định là thuộc về câu hỏi đứng trước chúng.
- id => mã định danh số duy nhất cho điều kiện, bắt đầu bằng số 1.
- similar_id => id câu hỏi của câu hỏi liên quan, nếu có
- class => 'C'
- type/scale => script
- name => tên trường câu trả lời
- relevance => toán tử so sánh
- text => câu trả lời dự kiến