Struktura badania wartości oddzielonych zakładką
From LimeSurvey Manual
Import i eksport wartości rozdzielonych tabulatorami struktury ankiety
Ta funkcja ma na celu ułatwienie korzystania z oprogramowania arkuszy kalkulacyjnych, takiego jak LibreOffice, Excel lub Dokumenty Google, do tworzenia i edytowania ankiet. Całkowicie eliminuje zależność od kodów SGQA.
Ta funkcja obsługuje import z plików z wartościami rozdzielanymi tabulatorami (TSV) zakodowanych w formacie ASCII lub UTF-8, które mają rozszerzenie .txt.
Pierwsze kroki
Najłatwiej jest pobrać istniejącą ankietę i wyeksportować ją w formacie wartości rozdzielanych tabulatorami. Użyj normalnego przycisku eksportu ankiety i zamiast wybierać format .lss, wybierz „Format wartości oddzielonych tabulatorami (*.txt)”. Zostanie on zapisany jako plik wartości rozdzielanych tabulatorami w odpowiednim formacie (plik Unicode rozdzielany tabulatorami), ze wszystkimi poprawnymi nagłówkami kolumn.
Każdy arkusz kalkulacyjny obsługujący wartości rozdzielane tabulatorami jest w porządku (np. OpenOffice lub LibreOffice). LimeSurvey ignoruje wszelkie formatowanie w arkuszu kalkulacyjnym, ale możesz je dodać, jeśli Ci to pomoże.
Będzie jeden wiersz dla każdej grupy, pytania, pytania dodatkowego i odpowiedzi. Istnieją także wiersze zawierające globalne zmienne ankiety oraz zmienne ankiety specyficzne dla języka. Język podstawowy zostanie wyświetlony jako pierwszy, a po nim pojawią się języki dodatkowe. Tak więc, jeśli istnieje wiele języków, cała zawartość języka podstawowego zostanie wyświetlona jako pierwsza (np. wszystkie grupy, pytania, pytania podrzędne i odpowiedzi). Następnie zostanie sporządzona przetłumaczona kopia dla każdego języka dodatkowego (z dokładnie tą samą liczbą i kolejnością lub wierszami dla przetłumaczonego zestawu).
Relacje wynikają z bliskości. Zatem pytania następujące po grupie są częścią tej grupy; pytania podrzędne następujące po pytaniu są częścią tego pytania, a odpowiedzi po pytaniu są częścią tego pytania. Dlatego nie musisz znać identyfikatorów (gid, qid, sqid), aby zadać jakiekolwiek pytania. Zostaną one obliczone automatycznie po imporcie. Tak naprawdę w tym formacie w ogóle nie używa się gid, qid ani sqid (ani kodów SGQA).
Wskazówki
Celem importu/eksportu wartości oddzielonych tabulatorami jest umożliwienie szybkiego zaprojektowania ankiety przy użyciu arkusza kalkulacyjnego. Oczekujemy, że będziesz często importował arkusz, sprawdzał jego ważność za pomocą funkcji „Pokaż logikę ankiety” i testował go. Za każdym razem, gdy go zaimportujesz, otrzymasz nową ankietę. Możesz więc otrzymać wiele częściowo opracowanych ankiet, ale to nie szkodzi. Po prostu wyrób sobie nawyk sprawdzania, który jest najnowszy, lub usuń stary po zaimportowaniu nowych. Ponieważ nigdy nie używasz kodów SGQA w wartości oddzielonej tabulatorami, nigdy nie musisz się martwić, jakie kody LimeSurvey przypisuje do kluczy głównej ankiety, grupy, pytań i odpowiedzi. Możesz więc importować i eksportować tak często, jak chcesz.
Oto kilka wygodnych rzeczy, które możesz zrobić, korzystając z tego podejścia do tworzenia narzędzi:
- Używaj tych samych odpowiedzi na wiele pytań. Po prostu skopiuj wiersze „A” i wklej po każdym pytaniu, które powinno mieć ten sam zestaw.
- Użyj tych samych pytań podrzędnych w przypadku wielu pytań. Po prostu skopiuj wiersze „SQ” i wklej je po każdym pytaniu, które tego potrzebuje.
- "Pętla" - używaj tej samej grupy wiele razy. Gdy grupa będzie już taka, jak chcesz, skopiuj ją tyle razy, ile potrzeba. Użyj filtrowania programu Excel, aby wyświetlić tylko wiersze „G” (dla grup) i użyj funkcji przeciągania kolumny programu Excel, aby zaktualizować równania istotności dla każdej grupy (np. w przypadku spisu ludności pierwszą trafnością może być „numPeople > 1”, następnym powinno być „numPeople > 2”. Funkcja przeciągania automatycznie zaktualizuje liczbę). Filtruj według wierszy „Q” i upewnij się, że każde pytanie ma unikalną wartość (np. powiedzmy, że nazwiesz swoje zmienne g1_q1, g1_q2, g1_qN, użyj funkcji Znajdź/Zamień, aby przekonwertować g1 na g2 drugiej grupy; g3 dla trzeciej itd.) .
- Ponowna kolejność pytań/grup. Po prostu zmień kolejność wierszy w pliku arkusza kalkulacyjnego.
- Testowanie modułów ankiety. W przypadku długich ankiet możesz podzielić testowanie na moduły. Po prostu utwórz nowe pliki arkuszy kalkulacyjnych dla każdego modułu, usuwając niepotrzebne wiersze. Pozwala to uniknąć konieczności wprowadzania dużej ilości danych do testowania późniejszych części ankiety.
- Testowanie pytań obowiązkowych. Częstą skargą nie jest konieczność wprowadzenia obowiązkowych wielu pytań, ale konieczność wyłączenia obowiązkowej funkcji na potrzeby testowania. Po prostu utwórz główny arkusz kalkulacyjny z obowiązkowym ustawieniem końcowych żądanych wartości. Następnie, aby to przetestować, wystarczy usunąć kolumnę „obowiązkowe” i zapisać wersję testową arkusza kalkulacyjnego. Po zaimportowaniu tej wersji żadne z pytań nie będzie obowiązkowe. Po zakończeniu testowania zaimportuj kopię wzorcową.
- Ustawianie wartości domyślnych. Zamiast korzystać z interfejsu GUI, możesz wprowadzić dowolne ustawienia domyślne w kolumnie domyślnej. Jest to szczególnie przydatne w przypadkach, gdy GUI nie pozwala na wprowadzenie żądanej wartości, np. wyrażenia, aby ustawić wartość domyślną dla elementów listy (np. zapełnianie listy z [[Uczestnicy ankiety|uczestnik ankiety] ] atrybut).
- Tłumaczenie. Możesz utworzyć kopie arkusza kalkulacyjnego – po jednej na każdy język. Uwzględnij wszystkie wiersze dotyczące języka podstawowego, następnie skopiuj i wklej je poniżej, a następnie przeciągnij, aby zmienić pole języka na język docelowy. Można je rozesłać do tłumaczy i po zakończeniu ponownie zintegrować w jednym pliku arkusza kalkulacyjnego.
- Zbiorcze ustawianie zaawansowanych atrybutów pytań. Możesz chcieć, aby wszystkie równania były widoczne (aby móc zobaczyć ich wartości podczas zbierania danych), ale następnie ukryj je wszystkie przed przejściem do środowiska produkcyjnego. Po prostu przefiltruj arkusz kalkulacyjny według klasy = 'Q' i typu pytania = '*' (równanie) i ustaw Always_hide na 1 dla każdego z tych pytań. Podobnie, powiedzmy po utworzeniu ankiety, decydujesz, które pytania powinny pojawiać się w statystykach publicznych. Zamiast edytować każde pytanie w interfejsie GUI, przefiltruj według klasy = 'Q' i ustaw public_statistics = 1 dla wszystkich pytań, które powinny być widoczne w statystykach.
- Znajdź i zamień. Załóżmy, że zdecydowałeś, że musisz zmienić sformułowania we wszystkich swoich pytaniach. Możesz użyć funkcji Znajdź i zamień w programie Excel, aby wprowadzić te zmiany. Podobnie, załóżmy, że zdecydujesz się na zbiorczą zmianę nazw zmiennych, na ratunek może przyjść funkcja Znajdź i zamień. Jeśli potrzebujesz funkcji znajdowania i zamieniania na podstawie wyrażeń regularnych, możesz wybrać żądaną kolumnę, skopiować ją do edytora tekstu, znaleźć i zamienić, a następnie wkleić kolumnę z powrotem do arkusza kalkulacyjnego.
- 'Uzyskiwanie zatwierdzeń '. Jeśli prowadzisz badania, możesz mieć komisję ds. oceny instytucjonalnej, która nalega na zapoznanie się z tekstem pytań. Może to być wygodny sposób udostępniania. Podobnie w przypadku rozmów z klientem.
- Konsensus zespołu. Jeśli chcesz, aby grupa zgodziła się na treść lub wygląd pytania lub grupy, możesz szybko stworzyć prototyp/edytować arkusz kalkulacyjny, zaimportować go i pokazać zespołowi (poprzez podgląd pytania lub grupy) dokładnie to, co zobaczą użytkownicy . W ten sposób możesz uzyskać zgodę zespołu, zanim opuści on salę, zamiast dokumentować wymagania, budować je i uzyskiwać zgodę na przyszłych spotkaniach.
- Aktualizacja z innych formatów ankiet. Jeśli ankieta jest w formacie XML, Word lub innym, możesz utworzyć proces tłumaczenia, aby odwzorować ją na ten format. Chociaż można również spróbować mapowania do formatu .lss, zaletą tego formatu jest to, że nie wymaga śledzenia relacji klucza obcego pomiędzy grupami, pytaniami, pytaniami podrzędnymi, odpowiedziami i wartościami domyślnymi.
Ograniczenia
- Z założenia ta funkcja działa poprawnie tylko w ankietach, które używają nazewnictwa qcode (a nie SGQA). Funkcja ta zakłada, że nazwy zmiennych (identyfikatory pytań) są unikalne w całej ankiecie. Nazwy pytań podrzędnych mogą się powtarzać, o ile są unikalne w ramach danego pytania.
Format pliku
Ogólne
Używamy tego samego zestawu nagłówków kolumn do wielu celów. Pierwsze 14 kolumn służy różnym celom w zależności od typu jednostki (np. grupa, pytanie, odpowiedź). Pozostałe kolumny to alfabetyczna lista nazw pól bazy danych dla kodów pytań zaawansowanych. Poniżej znajduje się składnia każdego typu jednostki
Pierwsze 14 kolumn to:
- id (New in 3.14.0 )
- lated_id (New in 3.14.0 )
- class
- type/scale
- nazwa
- trafność
- tekst
- pomoc
- język
- weryfikacja
- obowiązkowe
- inne
- domyślne
- same_default
Globalne parametry ankiety
W tabeli ankiet przypada jeden wiersz na każdy parametr.
- class => 'S'
- name => nazwa pola bazy danych
- text => wartość
Parametry specyficzne dla języka ankiety
W tabeli Surveys_languagessettings znajduje się jeden wiersz na pole na każdy język. Wszystkie wpisy dla danego języka są zbierane przed wstawieniem do tej tabeli.
- class => 'SL'
- name => nazwa pola bazy danych
- text => wartość
- language = > język
Grupy
Jeden wiersz grupy na każdy język ankiety (np. byłyby 3 wiersze grupy, gdyby ankieta obejmowała 3 języki).
- id => unikalny numeryczny identyfikator grupy, zaczynając od cyfry 1, użyj tego samego identyfikatora dla dodatkowych języków należących do bieżąca grupa
- class => 'G'
- name => nazwa_grupy -- unikalny identyfikator grupy
- relevance => grelevance -- równanie istotności na poziomie grupy, bez nawiasów klamrowych
- text => opis -- opis grupy specyficzny dla języka
- language => język -- język grupy (np. 'en')
Pytania
Jeden wiersz pytań na każdy język ankiety (np. w przypadku ankiety w 3 językach byłyby 3 wiersze pytań). Zakłada się, że pytania należą do grupy, która je poprzedza.
- id => unikalny numeryczny identyfikator pytania, zaczynając od cyfry 1, użyj tego samego identyfikatora dla dodatkowych języków należących do bieżącego pytania
- class => ' Q'
- type/scale => typ -- (zwykle jednoliterowy) typ pytania (np. „M” oznacza wielokrotny wybór)
- name => tytuł -- unikalna nazwa pytania (korzeń systemu nazewnictwa qcode)
- relevance => trafność -- równanie trafności dla pytania
- text => pytanie -- język -specyficzny tekst pytania
- help => pomoc -- tekst pomocy specyficzny dla języka
- language => język -- język grupy (np. 'en')
- validation = > preg -- opcjonalne kryteria sprawdzania poprawności wyrażeń regularnych dla pytania
- mandatory => obowiązkowe -- 'T' jeśli obowiązkowe
- other => other -- 'T' jeśli powinna być dostępna opcja "Inne" (tylko dla niektórych typów pytań)
- default => default -- jeśli ustawione, ta wartość jest wstawiana do tabeli wartości domyślnych dla tego pytania
- same_default => same_default -- 'Y' dla prawdy, w takim przypadku każda wartość domyślna ustawiona dla języka podstawowego ma zastosowanie do innych języków
Zapytania
Jeden wiersz pytania podrzędnego na język ankiety. Zakłada się, że pytania podrzędne należą do pytania, które je poprzedza.
- id => ten sam unikalny identyfikator numeryczny, który jest używany w pytaniach. Podpytania powinny używać następnej dostępnej wartości, identyfikatory pytań i podpytań powinny być różne (np. użyj identyfikatora 1 dla pytania i identyfikatorów 2, 3 i 4 dla podpytań należących do pytania 1, identyfikator następnego pytania powinien wynosić 5 itd.). Użyj tego samego identyfikatora pytania podrzędnego dla dodatkowych języków należących do bieżących pytań podrzędnych.
- class => 'SQ'
- type/scale => identyfikator_skali -- 0 lub 1, w zależności od typu pytania (np. tekst tablicy będzie miał dwa skale)
- name => tytuł -- "nazwa" pytania podrzędnego, np. ta używana do wykluczenia_all_others
- relevance => trafność -- (Przyszłość) w celu wsparcia trafności na poziomie podpytania
- text => pytanie -- tekst pytania podrzędnego dla konkretnego języka
- help => pomoc -- (Przyszłość) do obsługi pomocy na poziomie pytania podrzędnego
- language => język -- język dla pytania podrzędnego
#validation => preg -- (Przyszłość) aby wspierać sprawdzanie poprawności wyrażeń regularnych na poziomie podpytania (np. dla części adresu)
- mandatory => obowiązkowe -- (Przyszłość) aby wspierać obowiązkową walidację wyrażeń regularnych na poziomie pytania podrzędnego (np. utwórz tylko kilka pytań podrzędnych obowiązkowe)
- default => default -- jeśli ustawione, to jest to domyślna wartość dla podpytania (wstawiona do tabeli wartości domyślnych)
- same_default => same_default -- jeśli ustawione, to wartość domyślna dla podstawowego języka jest używany we wszystkich innych językach
Odpowiedzi
Jeden wiersz odpowiedzi na każdy język ankiety (np. w przypadku ankiety w 3 językach będą 3 wiersze odpowiedzi). Zakłada się, że odpowiedzi należą do pytania, które je poprzedza i mają żądaną kolejność sortowania.
- id => użyj tego samego identyfikatora, co identyfikator pytania, do którego należą
- class => 'A'
- type/scale => id_skali -- 0 lub 1 (np. dla podwójnej skali)
- name => code -- unikalny identyfikator odpowiedzi
- relevance => wartość_oceny -- w przypadku korzystania z opcji oceny , to jest wartość oceny odpowiedzi
- text => odpowiedź -- tekst odpowiedzi specyficzny dla języka
- language => język -- język tej odpowiedzi (np. „en”)
Oceny
Jeden wiersz oceny na każdy język ankiety (np. w przypadku ankiety obejmującej 3 języki będą 3 wiersze oceny). Oceny zapisywane są na końcu pliku.
- id => unikalny numeryczny identyfikator oceny, zaczynając od cyfry 1, użyj tego samego identyfikatora dla dodatkowych języków należących do aktualnej oceny
- lated_id => identyfikator grupy do której do której należy aktualna ocena
- class => 'AS'
- type/scale => zakres oceny: T-Total, G-group
- name => nazwa
- text => wiadomość
- min_num_value => Minimum
- max_num_value => Maksimum
- language => język -- język tej odpowiedzi (np. 'en')
Przydziały
Jeden wiersz na kwotę. Kwoty zapisywane są na końcu pliku.
- id => unikalny numeryczny identyfikator kontyngentu, zaczynający się od cyfry 1
- class => 'QTA'
- name => nazwa kontyngentu
- obowiązkowe => limit
- other => akcja dotycząca limitu
- default => aktywna
- same_default => automatyczne ładowanie adresu URL
Ustawienia języka przydziału
Jeden wiersz przydziału na język ankiety. Zakłada się, że ustawienia języka kwotowego należą do poprzedzającego je limitu.
- id => unikalny numeryczny identyfikator ustawień języka kwotowego, zaczynając od cyfry 1. Każdy wiersz dla różnych języków ankiety powinien mieć różne identyfikatory
- lated_id => identyfikator kwoty, do której należy to ustawienie
- class => 'QTALS'
- relevance => wiadomość
- text => URL
- help => opis adresu URL
#language => język -- język dla tego przydziału (np. „en”)
Liczba członków
Jeden wiersz na członka przydziału, niezależnie od języka. Wiersz członka kwotowego należy umieścić bezpośrednio po pytaniu, którego dotyczy. Zakłada się, że członkowie kontyngentu należą do poprzedzającego ich pytania.
- id => unikalny numeryczny identyfikator członków kontyngentu, zaczynający się od cyfry 1
- lated_id => identyfikator kontyngentu, do którego należy ten członek! N!#class => 'QTAM'
- name => kod odpowiedzi
Warunki
Jeden wiersz na warunek, niezależnie od języka. Wiersz warunku należy umieścić bezpośrednio po pytaniu, którego dotyczy. Zakłada się, że warunki należą do pytania, które je poprzedza.
- id => unikalny numeryczny identyfikator warunku, zaczynający się od cyfry 1.
- lated_id => identyfikator pytania powiązanego, jeśli ma to zastosowanie
- class => 'C'
- type/scale => scenariusz
- name => nazwa pola odpowiedzi
- relevance => operator porównania
- text => oczekiwana odpowiedź