Actions

Tab Separated Value survey structure/pl: Difference between revisions

From LimeSurvey Manual

(Created page with "==Pytania==")
(Created page with "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 poprzedz...")
Line 113: Line 113:




One question row per survey language (e.g., there would be 3 question rows if survey has 3 languages). Questions are assumed to belong to the group that precedes them.
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 => unique numeric identifier for the question, starting with number 1, use the same ID for additional languages belonging to current question
#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'
#class => ' Q'
#type/scale => type -- the (usually one letter) [[Question types|question type]] (e.g., 'M' is Multiple Choice)
#type/scale => typ -- (zwykle jednoliterowy) [[Typy pytań|typ pytania]] (np. „M” oznacza wielokrotny wybór)
#name => title -- the unique question name (the root of the qcode naming system)
#name => tytuł -- unikalna nazwa pytania (korzeń systemu nazewnictwa qcode)
#relevance => relevance -- the [[ExpressionScript - Presentation#Access_to_Variables|relevance equation]] for the question
#relevance => trafność -- [[ExpressionScript - Prezentacja#Access_to_Variables|równanie trafności]] dla pytania
#text => question -- the language-specific text of the question
#text => pytanie -- język -specyficzny tekst pytania
#help => help -- the language-specific help text
#help => pomoc -- tekst pomocy specyficzny dla języka
#language => language -- the language for the group (e.g., 'en')
#language => język -- język grupy (np. 'en')
#validation => preg -- the optional regular expression validation criteria for the question
#validation = > preg -- opcjonalne kryteria sprawdzania poprawności wyrażeń regularnych dla pytania
#mandatory => mandatory -- 'Y' if mandatory
#mandatory => obowiązkowe -- 'T' jeśli obowiązkowe
#other => other -- 'Y' if the "Other" option should be available (only for some question types)
#other => other -- 'T' jeśli powinna być dostępna opcja "Inne" (tylko dla niektórych typów pytań)
#default => default -- if set, this value is inserted into the defaultvalues table for this question
#default => default -- jeśli ustawione, ta wartość jest wstawiana do tabeli wartości domyślnych dla tego pytania
#same_default => same_default -- 'Y' for true, in which case any defaultvalue set for primary language applies to other languages
#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





Revision as of 09:03, 26 September 2023


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.


Template:Uwaga


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.

Należy pamiętać, że wyeksportowany plik jest w formacie UTF-8 ze znacznikiem kolejności bajtów (BOM) jako pierwszymi trzema (ukrytymi) znakami. Jeśli dwukrotnie klikniesz plik .txt i spróbujesz otworzyć go bezpośrednio w programie Excel, nie otworzy się on poprawnie, ponieważ program Excel nie zdaje sobie sprawy, że jest on sformatowany w formacie UTF-8. Aby otworzyć te pliki w programie Excel, najpierw otwórz program Excel, następnie wybierz opcję Plik:Otwórz, wybierz plik .txt i powiedz programowi Excel, że używa kodowania UTF-8.

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:

  1. 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.
  2. 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.
  3. "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.) .
  4. Ponowna kolejność pytań/grup. Po prostu zmień kolejność wierszy w pliku arkusza kalkulacyjnego.
  5. 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.
  6. 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ą.
  7. 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).
  8. 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.
  9. 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.
  10. 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.
  11. '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.
  12. 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.
  13. 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

  1. 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:

  1. id (New in 3.14.0 )
  2. lated_id (New in 3.14.0 )
  3. class
  4. type/scale
  5. nazwa
  6. trafność
  7. tekst
  8. pomoc
  9. język
  10. weryfikacja
  11. obowiązkowe
  12. inne
  13. domyślne
  14. same_default
 Hint: Kolumny id i powiązane_id są używane tylko w przypadku limitu i są opcjonalne. Jeśli nie masz limitu, możesz bezpośrednio usunąć te 2 kolumny.


Globalne parametry ankiety

W tabeli ankiet przypada jeden wiersz na każdy parametr.

  1. class => 'S'
  2. name => nazwa pola bazy danych
  3. 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.

  1. class => 'SL'
  2. name => nazwa pola bazy danych
  3. text => wartość
  4. 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).

  1. 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
  2. class => 'G'
  3. name => nazwa_grupy -- unikalny identyfikator grupy
  4. relevance => grelevance -- równanie istotności na poziomie grupy, bez nawiasów klamrowych
  5. text => opis -- opis grupy specyficzny dla języka
  6. 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.

  1. 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
  2. class => ' Q'
  3. type/scale => typ -- (zwykle jednoliterowy) typ pytania (np. „M” oznacza wielokrotny wybór)
  4. name => tytuł -- unikalna nazwa pytania (korzeń systemu nazewnictwa qcode)
  5. relevance => trafność -- równanie trafności dla pytania
  6. text => pytanie -- język -specyficzny tekst pytania
  7. help => pomoc -- tekst pomocy specyficzny dla języka
  8. language => język -- język grupy (np. 'en')
  9. validation = > preg -- opcjonalne kryteria sprawdzania poprawności wyrażeń regularnych dla pytania
  10. mandatory => obowiązkowe -- 'T' jeśli obowiązkowe
  11. other => other -- 'T' jeśli powinna być dostępna opcja "Inne" (tylko dla niektórych typów pytań)
  12. default => default -- jeśli ustawione, ta wartość jest wstawiana do tabeli wartości domyślnych dla tego pytania
  13. 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


Subquestions

One subquestion row per survey language. Subquestions are assumed to belong to the question that precedes them.

  1. id => same unique numeric identifier which is used for the questions. Subquestions should use next available value, question and subquestion IDs should be different (e.g. use ID 1 for question and IDs 2, 3 and 4 for subquestions belonging to question 1, next question ID should be 5 and so on). Use the same subquestion ID for additional languages belonging to current subquestions.
  2. class => 'SQ'
  3. type/scale => scale_id -- 0 or 1, depending upon question type (e.g. array text will have two scales)
  4. name => title -- the "name" of the subquestion, e.g. the one used for exclude_all_others
  5. relevance => relevance -- (Future) to support subquestion-level relevance
  6. text => question -- the language-specific text of the subquestion
  7. help => help -- (Future) to support subquestion-level help
  8. language => language -- the language for the subquestion
  9. validation => preg -- (Future) to support subquestion-level regular expression validation (e.g. for address parts)
  10. mandatory => mandatory -- (Future) to support subquestion-level mandatory (e.g. make only a few subquestions mandatory)
  11. default => default -- if set, then this is the default value for the subquestion (inserted into defaultvalues table)
  12. same_default => same_default -- if set, then the default for the primary language is  used for all other languages


Answers

One answer row per survey language (e.g., there would be 3 answer rows if survey has 3 languages). Answers are assumed to belong to the question that precedes them, and be in the desired sort order.

  1. id => use the same ID as the ID of the question it belongs to
  2. class => 'A'
  3. type/scale => scale_id -- 0 or 1 (e.g. for dual-scale)
  4. name => code -- the unique answer identifier
  5. relevance => assessment_value -- if using assessment option, this is the assessment value for the answer
  6. text => answer -- the language-specific text of the answer
  7. language => language -- the language for this answer (e.g. 'en')


Assessments

One assessment row per survey language (e.g., there would be 3 assessment rows if survey has 3 languages). Assessments are written at the end of file.

  1. id => unique numeric identifier for the assessment, starting with number 1, use the same ID for additional languages belonging to current assessment
  2. related_id => id of group to which current assessment belongs to
  3. class => 'AS'
  4. type/scale => assessment scope: T-Total, G-group
  5. name => name
  6. text => message
  7. min_num_value => Minimum
  8. max_num_value => Maximum
  9. language => language -- the language for this answer (e.g. 'en')


Quotas

One row per quota. Quotas are written at the end of file.

  1. id => unique numeric identifier for the quota, starting with number 1
  2. class => 'QTA'
  3. name => quota name
  4. mandatory => limit
  5. other => quota action
  6. default => active
  7. same_default => autoload URL


Quota language settings

One quota row per survey language. Quota language settings are assumed to belong to the quota that precedes them.

  1. id => unique numeric identifier for the quota language settings, starting with number 1. Each row for different survey languages should have different IDs
  2. related_id => quota id of quota to which this setting belongs to
  3. class => 'QTALS'
  4. relevance => message
  5. text => URL
  6. help => URL description
  7. language => language -- the language for this quota (e.g. 'en')


Quota members

One row per quota member, no language dependent. Quota member row should be placed immediately after question it relates to. Quota members are assumed to belong to the question that precedes them.

  1. id => unique numeric identifier for the quota members, starting with number 1
  2. related_id => quota id of quota to which this member belongs to
  3. class => 'QTAM'
  4. name => answer code


Conditions

One row per condition, no language dependent. Condition row should be placed immediately after question it relates to. Conditions are assumed to belong to the question that precedes them.

  1. id => unique numeric identifier for the condition, starting with number 1.
  2. related_id => question id of related question, if applicable
  3. class => 'C'
  4. type/scale => scenario
  5. name => answer field name
  6. relevance => comparison operator
  7. text => expected answer