Sprawdź logikę ankiety - Zaawansowane
From LimeSurvey Manual
Ogólne
Ważną opcją, która pomaga w tworzeniu i łatwym zarządzaniu złożonymi ankietami, jest „Sprawdź logikę ankiety”.
Podczas opracowywania i testowania ankiety, a także przed jej aktywacją, bardzo ważne jest sprawdzenie logiki ankiety. Jest to szczególnie prawdziwe, gdy używasz złożonych równań dotyczących trafności, dopasowania i walidacji – musisz mieć pewność, że nic nie ulegnie uszkodzeniu podczas przeprowadzania ankiety.
Ta funkcja pozwala szybko sprawdzić dokładność ankiety, grup i pytań. Dostęp do niego można uzyskać z opcji menu górnego paska, znajdujących się w ustawieniach związanych z ankietą. Jest ona dostępna poprzez menu Narzędzia:
Jak widać powyżej, możesz uruchomić tę opcję czterokrotnie, dla każdego języka użytego w ankiecie.
Opis
Opcja „Sprawdź logikę ankiety” pokazuje wszystko, co określiłeś dla każdego pytania i grupy (np. nazwę, tekst, pomoc, warunki/trafność, zasady sprawdzania poprawności, wartości domyślne, pytania podrzędne, odpowiedzi) w wygodnej formie tabelarycznej. Podświetla błędy i umożliwia kliknięcie identyfikatora pytania i grupy (lub zmiennych używanych w równaniach), aby otworzyć nowe karty przeglądarki i edytować te pytania lub grupy. Ułatwia to szybką edycję ewentualnych błędów oraz odświeżenie strony sprawdzania logiki w celu potwierdzenia trafności ankiety przed jej aktywacją.
Wyświetlacz zaprojektowano także tak, aby był czytelny dla badaczy i sponsorów badań, co umożliwi im sprawdzenie dokładności projektu i logiki badania. Sprawdzenie logiki ankiety aktualizuje pamięć podręczną wszystkich wyrażeń używanych w aktywnej ankiecie.
Zawiera następujące kolumny:
- # - pokazuje liczbę sekwencji grup i pytań, zaczynając od 0.
- Nazwa [ ID] - pokazuje kod pytania dla grupy/pytania/podpytania. Kody te mogą być używane jako zmienne w wyrażenia. „ID” to identyfikator pytania (QID) lub identyfikator grupy (GID). W tym polu wyświetlany jest także typ pytania (np. wielokrotny wybór [M])).
- Znaczenie [ Walidacja] (domyślnie) - wyświetla następujące informacje:
- Trafność - podświetlona składnia równanie istotności dla pytania lub grupy. Jeśli zawsze jest to prawda (co zostanie pokazane w dowolnym scenariuszu), wartość będzie wynosić „1”
- „Validation” — ExpressionScript automatycznie generuje validation równanie w oparciu o wybrane atrybuty pytania (np. min./maks. liczba odpowiedzi, min./maks./równa suma wartości, min./maks. indywidualne wartości lub walidacja wyrażenia regularnego). W tej sekcji przedstawiono wygenerowane równanie walidacyjne, dzięki któremu można wykryć, czy występują jakieś błędy (takie jak niezdefiniowane zmienne).
- Weryfikacja na poziomie pytania pokazuje równanie potrzebne do sprawdzenia opisanych powyżej atrybutów pytania
- **Weryfikacja na poziomie podpytania pokazuje równanie potrzebne do implementacji array_filter, array_filter_exclude i exclusive_option
- Domyślne - jeśli pytanie ma wartość domyślną, jest tutaj pokazane z podświetloną składnią (ponieważ wartością domyślną może być wyrażenie).
- Tekst [ Pomoc] (Wskazówka) - wyświetla następujące informacje:
- Tekst - tekst grupy, pytania, pytania podrzędnego lub odpowiedzi. Jest podświetlona składnia, aby pokazać wszelkie osadzone krawiectwo, co pozwala sprawdzić, czy zadeklarowałeś wszystkie zmienne, które planujesz użyć podczas krawiectwa.
- Pomoc - pokazuje tekst pomocy dla pytania, również podświetloną składnię.
- Wskazówka - pokazuje wewnętrznie wygenerowaną wskazówkę dotyczącą sprawdzania poprawności, opartą na atrybutach pytania. Ta sama wskazówka jest używana we wszystkich stylach ankiet, a także w drukowanych ankietach i na ekranach wprowadzania danych.
- „Atrybuty pytania” - pokazuje tabelę wszystkich odpowiednich atrybutów pytania dla tego pytania. Atrybuty, które mogą być równaniami, są wyróżniane według składni, co umożliwia sprawdzenie ich dokładności.
Wiersze są oznaczone kolorami w następujący sposób:
- Grupy - są wyświetlane na jasnoszarym tle
- Pytania - są wyświetlane na jasnozielonym tle
- ' „Zapytania” – są wyświetlane na bladożółtym tle
- „Odpowiedzi” – są wyświetlane na zwykłym białym tle
Odpowiedzi posiadają dodatkowy atrybut w kolumnie 'Istotność:
- 'Wartość - jest to domyślna wartość wewnętrzna używana w obliczeniach. Jeśli używasz Oceny, będzie to wartość oceny. W przeciwnym razie będzie to taka sama nazwa jak nazwa odpowiedzi.
Wykorzystanie
Na górze strony znajduje się komunikat podsumowujący. Jeśli wszystko jest w porządku, wyświetli się komunikat „W tej ankiecie nie wykryto błędów składniowych” lub „Ta grupa” lub „To pytanie” „samo w sobie nie zawiera żadnych błędów składniowych”. Jeśli jest odwrotnie, pojawi się informacja „X pytań zawiera błędy składniowe, które należy poprawić”.
Każde pytanie, które zawiera błędy składniowe, ma tło swojej skrajnej lewej kolumny (tzn. #) oznaczone kolorem czerwonym. Ponadto w kolumnie „Nazwa [ID]” wyświetli się ostrzeżenie określające minimalną liczbę błędów w pytaniu. Następujące błędy są częste:
- Niezdefiniowana zmienna - jeśli nie zdefiniowałeś wszystkich zmiennych lub błędnie wpisałeś array_filter (lub inny zestaw opcji odpowiedzi dla array_filter), to niektóre z Twoich pytań walidacyjnych będą pokazywać błędy . Niezdefiniowane zmienne są wyświetlane w kolorze czerwonym i otoczone czerwoną linią.
- Zła składnia - gdy zaczniesz używać równań istotności, możesz użyć za dużo lub za mało nawiasów. Takie problemy składniowe są podświetlone i otoczone czerwoną ramką. Jeśli najedziesz myszką na tekst w czerwonej ramce, wyświetli się podpowiedź opisująca błąd.
Kolory w składni ExpressScript
Składnia warunków i równań jest podświetlona, aby łatwiej zorientować się, na co patrzysz:
- Zielony / Jasnoniebieski: Zmienna, która odwołuje się do pytania z wcześniejszej ankiety
- Niebieski : Funkcja
- Szary: Wyrażenie łańcuchowe
- Brązowy: Wyrażenie TOKEN (dane uczestnika)
- Czarny: Operator
Co należy sprawdzić:
- Fioletowy: Zmienna odwołująca się do pytanie w dalszej części ankiety. Zwykle jest to błąd i należy to sprawdzić.
- Czerwona lub czerwona ramka: Nieistniejąca zmienna lub odniesienie do wcześniejszego pytania lub błąd składniowy - zwykle należy to sprawdzić.
Niezdefiniowane zmienne
Jeśli używane są niezdefiniowane zmienne, odpowiednia nazwa zmiennej będzie oznaczona kolorem na czerwono i otoczona czerwoną linią. Jeśli najedziesz myszką na nazwę zmiennej, wyświetli się informacja „niezdefiniowana zmienna”:
}}
Zła składnia
Większość błędów związanych z wyrażeniami wynika ze złej składni. Wiąże się to z faktem, że administratorzy ankiet zazwyczaj nie dodają nawiasu klamrowego, niewłaściwie używają nawiasów, bądź też błędnie używają wyrażeń:
Oto wiele dobrych przykładów użycia podświetlanie składni.
Zły niestandardowy JavaScript
Błędy JavaScript zostaną również wyróżnione podczas sprawdzania logiki ankiety:
Przyspieszenie edycji i sprawdzania poprawności
Cały tekst z wyróżnioną składnią zawiera wbudowane podpowiedzi, które można kliknąć:
- Podpowiedzi
- Funkcje — najechanie myszką pozwala zobaczyć cel i definicję składni funkcji;
- Nazwy zmiennych - najechanie myszką pozwala zobaczyć pozycję (grupę, sekwencję pytań), treść pytania i dopuszczalne odpowiedzi na pytanie.
- Akcje
- Nazwy zmiennych - kliknięcie na nazwę zmiennej otwiera nowe okno umożliwiające aby edytować pytanie. Ułatwia to nawigację i weryfikację logiki - po prostu klikaj nazwy zmiennych mające znaczenie lub kryteria walidacji pytania, aby zobaczyć, skąd pochodzą i jak są wykorzystywane.
Przykłady
Poniższe przykłady pochodzą z Przykładowe ankiety ExpressionScript. Na tej stronie znajdziesz zrzuty ekranu przedstawiające przeprowadzane ankiety, wyjaśnienia i pliki do pobrania.
Wskaźnik masy ciała
Oto zrzuty ekranu tego przykładu.
To jest widok zmiany kolejności pytań w obliczeniach wskaźnika masy ciała. Równania dotyczące wagi, wzrostu i BMI możesz zobaczyć w kolumnie „Pytanie”:
Aby uzyskać lepszy przegląd ankiety, sprawdź stronę logiki ankiety:
Ten przykład ankiety jest również dobrym przykładem zagnieżdżonych instrukcji if() w celu wygenerowania „stanu wagi”.
Logika kaskadowa
Oto zrzuty ekranu tego przykładu.
Pokazuje logikę sprawdzania poprawności podpytania, która jest generowana automatycznie, gdy używasz array_filter i array_filter_exclude. Ten przykład pokazuje również, jak można zastąpić dostosowaną wartość „Inne” (odpowiedź dla Q02_other to Q01_other).
Q05 w tym przykładzie pokazuje jednoczesne użycie array_filter i array_filter_exclude odpowiednio w Q01 i Q02. Ten przykład ilustruje kaskadowe możliwości array_filter. Zauważ, że jednym z głównych powodów pokazywania kryteriów „walidacji” na poziomie pytania i pytania podrzędnego jest upewnienie się, że nie popełniłeś żadnych literówek przy określaniu nazw zmiennych array_filter lub array_filter_exclude (lub w przypadku, gdy używasz różnych nazw zmiennych dla lista odfiltrowanych pytań podrzędnych). Jeśli masz takie literówki, wszystkie nieprawidłowe nazwy zmiennych zostaną wyświetlone na czerwono, co oznacza, że są niezdefiniowane, co umożliwi szybkie rozwiązanie problemu.
Dynamiczne znaczenie
Ten przykład ilustruje dynamiczną logikę dopasowania kaskadowego do kontrolowania wyświetlania widoczności pytań. Możesz pobrać ten przykład tutaj.
Należy również pamiętać, że pytania są wyświetlane tylko wtedy, gdy spełnione są określone kryteria walidacji. Na przykład, jeśli dana osoba twierdzi, że ma dwójkę dzieci, respondent musi odpowiedzieć na pewne pytania (dziecko1 i dziecko2).
Istotność na poziomie grupy
Ten przykład pokazuje, jak trafność na poziomie grupy pojawia się w kontroli logicznej. Oto zrzuty ekranu przykładu opisanego poniżej.
Jak widać, równanie istotności na poziomie grupy (cohabs > 1 && p1_rel != "") pojawia się w szarym wierszu Osoba 2 dla G-2.
Możesz również zauważyć, że wszystkie pytania są obowiązkowe. Jeśli jednak grupa jest nieistotna, nieistotne są także wszystkie jej pytania. W rezultacie pytania te są naprawdę obowiązkowe tylko wtedy, gdy grupa jest istotna.
Możesz również zauważyć, że niektóre pytania są wyświetlane tylko wtedy, gdy odpowiedź na poprzednie pytanie nie jest pusta. Poniżej możesz zobaczyć, że jeśli p2_sex nie zostanie wypełnione, p2_name nie zostanie wyświetlone, nawet jeśli jest to pytanie obowiązkowe. Obowiązkowe pytanie p2_age również nie zostanie wyświetlone, jeśli p2_name nie zostanie wypełnione. Pytania te można uznać za „warunkowo obowiązkowe”.
Dodatkowo pamiętaj, że wiadomości ze wskazówkami są również tworzone automatycznie. Są one uporządkowane według zakresu wartości (min./maks.), zakresu wartości sumy (min./maks./równa się), liczby odpowiedzi (min./maks.) itp. (zależy to od użytego typu pytania i aktywnych atrybutów). Czasami chcesz sprawdzić zakres odpowiedzi, ale nie chcesz wyświetlać użytkownikowi czegoś, co może wydawać się głupimi wskazówkami dotyczącymi sprawdzania poprawności. W takich przypadkach możesz użyć opcji pytania hide_tip (tak jak w tym przypadku, aby uniknąć informowania użytkownika, że wiek musi mieścić się w przedziale od 0 do 115, chyba że spróbuje wprowadzić złą wartość - patrz p2_age ).
Przecinek jako separator dziesiętny
Chociaż LimeSurvey w pełni obsługuje użycie przecinka jako separatora podstawy (dziesiętnego) w czasie wykonywania, nadal musisz używać przecinka jako separatora podstawy w czasie projektowania (np. podczas określania wartości min./maks. w zaawansowanych atrybutach pytań). Działającym przykładem może być znalezione tutaj.
Also, remember that the validation logic is created for you automatically from the enabled question attributes. The equations may look overwhelming, but you don't need to worry about them.