x

Główne rozdziały

  1. LimeSurvey Cloud a LimeSurvey CE
  2. LimeSurvey Cloud — przewodnik szybkiego startu
  3. LimeSurvey CE - Instalacja
  4. Jak dobrze zaprojektować ankietę (Przewodnik)
  5. Pierwsze kroki
  6. Konfiguracja LimeSurvey
  7. Wprowadzenie - Ankiety
  8. Wyświetl ustawienia ankiety
  9. Zobacz menu ankiety
  10. Wyświetl strukturę ankiety
  11. Wprowadzenie - Pytania
  12. Wprowadzenie - Grupy pytań
  13. Wprowadzenie - Ankiety - Zarządzanie
  14. Opcje paska narzędzi ankiety
  15. Ankieta wielojęzyczna
  16. Skrócona instrukcja obsługi — ExpressionScript
  17. Zaawansowane funkcje
  18. Ogólne FAQ
  19. Rozwiązywanie problemów
  20. Obejścia
  21. Licencja
  22. Dziennik zmian wersji
  23. Wtyczki - Zaawansowane
 Actions

ExpressionScript How-tos/pl: Difference between revisions

From LimeSurvey Manual

Maren.fritz (talk | contribs)
Created page with "Poradniki dotyczące ExpressionScript"
 
Maren.fritz (talk | contribs)
Created page with "Kiedy faktycznie edytujesz pytanie, pytanie wygląda następująco:"
 
(67 intermediate revisions by the same user not shown)
Line 3: Line 3:




=Overview of what has been previously explained=
=Przegląd tego, co zostało wcześniej wyjaśnione=




If you have followed so far the structure of the LimeSurvey manual, it means that you already the [[ExpressionScript - Presentation#Key_Definitions|LimeSurvey terminology]]. Next, we covered expressions and variables in order to learn how to enhance our surveys. In the next part, we moved to the types and meanings of [[ExpressionScript - Presentation#Syntax Highlighting|syntax highlighting]] to learn how to correct syntax errors.  
Jeśli do tej pory śledziłeś strukturę podręcznika LimeSurvey, oznacza to, że znasz już [[ExpressionScript - Prezentacja#Key_Definitions|terminologia LimeSurvey]]. Następnie omówiliśmy wyrażenia i zmienne, aby dowiedzieć się, jak ulepszyć nasze ankiety. W następnej części przeszliśmy do typów i znaczeń [[ExpressionScript - Prezentacja#Podświetlanie składni|podświetlanie składni]], aby dowiedzieć się, jak poprawić błędy składniowe.  


With these basic notions covered, we could move towards examples and explaining how expressions work within LimeSurvey.  
Po omówieniu tych podstawowych pojęć moglibyśmy przejść do przykładów i wyjaśnienia, jak działają wyrażenia w LimeSurvey.  




=Syntax Highlighting=
=Podświetlanie składni=




The following screenshots give examples, but do not show the values of the tooltips. A tooltip is an informative box which is displayed whenever you hover the mouse over any bold colored words.
Poniższe zrzuty ekranu przedstawiają przykłady, ale nie pokazują wartości podpowiedzi. Etykietka narzędzia to pole informacyjne wyświetlane po najechaniu myszką na pogrubione kolorowe słowa.


Because of this syntax highlighting, it is very easy to compose correct expressions, even the ones that are complicated. Although the LimeSurvey team plans to try to build an Expression Builder GUI, you can use the existing syntax-highlighting to quickly identify and fix typos. You can also use the tooltips to validate the accuracy of your expressions (e.g., confirm you have selected the desired variable(s)).
Dzięki podświetleniu składni bardzo łatwo jest tworzyć poprawne wyrażenia, nawet te skomplikowane. Chociaż zespół LimeSurvey planuje spróbować zbudować GUI Konstruktora wyrażeń, możesz użyć istniejącego podświetlania składni, aby szybko identyfikować i naprawiać literówki. Możesz także użyć podpowiedzi, aby sprawdzić dokładność wyrażeń (np. potwierdzić, że wybrałeś żądane zmienne).


In each of the examples, there are three columns:
W każdym z przykładów znajdują się trzy kolumny:
#Source - this is the raw text that you would enter into the LimeSurvey question field
#Source - to jest surowy tekst, który należy wpisać w polu pytania LimeSurvey
#Pretty Print - this is the syntax-highlighted equivalent of what you entered
#Pretty Print - jest to podświetlony składniowo odpowiednik tego, co wpisałeś! N!#*Zauważ, że w tym podświetleniu wyrażenia są wyświetlane na brązowym tle, ale nie są otoczone nawiasami klamrowymi.
#*Note that Expressions are shown with a tan background, but not surrounded by curly braces in this highlighting.
#*Ponieważ EM obsługuje podstawienia rekurencyjne, pokazanie nawiasów klamrowych w podświetleniu spowodowałoby błędy składniowe
#*Since EM supports recursive substitution, showing curly braces in the highlighting would cause syntax errors
#Result - to jest wynik generowany, gdy EM przetwarza źródło
#Result - this is the output generated when EM processes the source
#*Wszystko, co można poprawnie zastąpić, to
#*Everything that can be properly substituted is
#*Wyrażenia z błędami są wyświetlane w linii, z podświetlaniem składni. Błędy są otoczone czerwoną linią.
#*Expressions with errors are shown in-line, with syntax highlighting. Errors are surrounded by a red-lined box.




==Proper Syntax==
==Właściwa składnia==




You may find below examples of proper syntax:
Poniżej znajdziesz przykłady poprawnej składni:
#Values: shows that known variables are color coded according to whether are set on the current page. Old-style INSERTANS:xxxx gets its own color-coding style
#Values: pokazuje, że znane zmienne są oznaczone kolorami w zależności od tego, czy są ustawione na bieżącej stronie. INSERTANS:xxxx w starym stylu otrzymuje swój własny styl kodowania kolorami
#Question Attributes: shows that dot notation can access some properties of questions
#Atrybuty pytania: pokazuje, że notacja z kropkami może uzyskać dostęp do niektórych właściwości pytań
#Math: shows that basic and complex calculations are supported
#Math: pokazuje, że obsługiwane są podstawowe i złożone obliczenia
#TextProcessing: shows some of the available text-processing functions
#TextProcessing: pokazuje niektóre dostępne funkcje przetwarzania tekstu
#Dates: shows two of the available date-related functions
#Dates: pokazuje dwie dostępne funkcje związane z datą
#Conditional: shows the usage of the if() function. The choices can be nested.
#Conditional: pokazuje użycie funkcji if(). Opcje można zagnieżdżać.
#Tailored paragraph: you can completely customize a report based upon prior values
#Dostosowany akapit: możesz całkowicie dostosować raport w oparciu o wcześniejsze wartości
#EM processes within strings: shows that it can do substitutions within strings. This example generates a tailored image name.
#EM procesy w ciągach: pokazuje, że może dokonywać podstawień w ciągach. Ten przykład generuje dostosowaną nazwę obrazu.
#EM doesn't process curly braces like these: shows that if the curly braces are escaped, or there is a white space between the expression and the curly braces, ES ignores the expression.
#EM nie przetwarza nawiasów klamrowych w następujący sposób: pokazuje, że jeśli nawiasy klamrowe zostaną zmienione lub pomiędzy wyrażeniem a nawiasami klamrowymi znajduje się spacja, ES ignoruje wyrażenie.




Line 46: Line 45:




==EM Syntax Containing Errors==
==Składnia EM zawierająca błędy==




Here are examples of common errors when typing ES expressions. Note that the tooltips provide additional information.
Oto przykłady typowych błędów podczas wpisywania wyrażeń ES. Zwróć uwagę, że podpowiedzi zawierają dodatkowe informacje.
#Inline Javascript that forgot to add spaces after curly brace
#Inline Javascript, który zapomniał dodać spacji po nawiasie klamrowym
#*Since "document.write" appears right after a curly brace, EM thinks it is an expression, and red-boxes "document" and "write" since they are undefined variable and functions, respectively
#*Ponieważ „document.write” pojawia się zaraz po nawiasie klamrowym, EM uważa, że jest to wyrażenie i red- pola „dokumentuj” i „zapisz”, ponieważ są to odpowiednio niezdefiniowane zmienne i funkcje
#Unknown/Misspelled variables, functions and operators
#Nieznane/błędnie napisane zmienne, funkcje i operatory
#*Here we forgot that we are using the variable name "gender" instead of "sex", but EM catches that error. It also red-boxes '++', since that is not a supported operator.
#*Tutaj zapomnieliśmy, że używamy nazwy zmiennej „gender” zamiast „ sex”, ale EM wychwytuje ten błąd. Zaznacza także „++, ponieważ nie jest to obsługiwany operator.
#Warns if use = instead of eq, or perform value assignments
#Ostrzega, jeśli użyje = zamiast eq lub wykona przypisania wartości
#*Note that the '=' and '+=' are in red text instead of black. If you hover the mouse over them, you will see warnings that you are assigning a value.
#*Zauważ, że „=” i „+=” są zapisane czerwonym tekstem, a nie czarnym. Jeśli najedziesz na nie myszką, zobaczysz ostrzeżenie, że przypisujesz wartość.
#Wrong number of arguments for functions
#Zła liczba argumentów funkcji
#*if() takes 3 arguments, but it has been given 4, so hovering over the red-boxed "if" will explain the error and show the supported syntax
#*if() przyjmuje 3 argumenty, ale podano jej 4, więc najechanie nad zaznaczonym na czerwono „if” wyjaśni błąd i pokaże obsługiwaną składnię
#*sum() takes an unlimited number of arguments, but we had a trailing comma before the closing parentheses, so that is red-boxed
#*sum() przyjmuje nieograniczoną liczbę argumentów, ale przed nawiasem zamykającym mieliśmy końcowy przecinek, więc jest to zaznaczone na czerwono! N!#Niedopasowane nawiasy
#Mismatched parentheses
#*To jeden z najczęstszych błędów podczas zapisywania wyrażeń.
#*This is one of the most common errors when writing expressions.
#*Pokazuje dwa przykłady braku nawiasów zamykających i jeden przykład posiadania o jeden za dużo nawiasów zamykających.
#*This shows two examples of missing closing parentheses, and one example of having one too many closing parentheses.
#Nieobsługiwana składnia
#Unsuported syntax
#*Jeśli użyjesz operatora lub znaków interpunkcyjnych, których ES nie obsługuje, zostanie to zaznaczone czerwoną ramką.
#*If you use an operator or punctuation that ES does not support, it will red-box it.
#Nieprawidłowe przypisania
#Invalid assignments
#*Niektóre zmienne mają funkcję readWrite i można zmienić ich wartości. Inne są tylko do odczytu.
#*Some variables are readWrite and can have their values changed. Others are read-only.
#*Jeśli spróbujesz zmienić wartość zmiennej tylko do odczytu, nie będzie to możliwe. EM oznaczy próbę czerwoną ramką.
#*If you try to change the value of a read-only variable, you can't. EM will red-box the attempt.
#*Jeśli spróbujesz przypisać wartość do równania lub ciągu znaków, również otrzymasz błąd
#*If you try to assign a value to an equation or a string, you will also get an error




Line 73: Line 71:




=="Live" examples of Syntax Highlighting with active tooltips==
=="Żywe" przykłady podświetlania składni z aktywnymi podpowiedziami==




<table border="1">
<table border="1">
<tr><th>Source</th><th>Pretty Print</th><th>Result</th></tr><tr><td><b>Here is an example of OK syntax with tooltips</b><br>Hello {if(gender=='M','Mr.','Mrs.')} {surname}, it is now {date('g:i a',time())}. Do you know where your {sum(numPets,numKids)} children and pets are?
<tr><th> Źródło</th><th> Ładny nadruk</th><th> Wynik</th></tr><tr><td> <b>Oto przykład składni OK z podpowiedziami</b><br> Witaj {if(gender=='M','Pan','Pani')} {nazwisko}, jest teraz {data('g:i a',time())}. Czy wiesz, gdzie są Twoje {sum(numPets,numKids)} dzieci i zwierzęta?


</td><td><b>Here is an example of OK syntax with tooltips</b><br>Hello <span style="background-color: #eee8aa;"><span title="Excel-style if(test,result_if_true,result_if_false); if(test,result_if_true,result_if_false)" style="color: blue; font-weight: bold">if</span>(<span title="[java61764X1X5][G:2][Q:110]: What is your gender (male/female)?; value=M" style="color: green; font-weight: bold">gender</span> == <span title="" style="color: gray">'M'</span>,<span title="" style="color: gray">'Mr.'</span>,<span title="" style="color: gray">'Mrs.'</span>)</span> <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:20]: What is your last/surname?; value=Smith" style="color: green; font-weight: bold">surname</span></span>, it is now <span style="background-color: #eee8aa;"><span title="Format a local date/time; string date(format [, timestamp=time()])" style="color: blue; font-weight: bold">date</span>(<span title="" style="color: gray">'g:i a'</span>,<span title="Return current UNIX timestamp; number time()" style="color: blue; font-weight: bold">time</span>())</span>. Do you know where your <span style="background-color: #eee8aa;"><span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(<span title="[java61764X1X4][G:2][Q:50]: How many pets do you have?; value=1" style="color: maroon; font-weight: bold">numPets</span>,<span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>)</span> children and pets are?
</td><td><b>Oto przykład składni OK z podpowiedziami</b><br> Witaj <span style="background-color: #eee8aa;">, <span title="W stylu Excela if(test,result_if_true,result_if_false); if(test,wynik_jeśli_prawda,wynik_jeśli_fałsz)" style="color: blue; font-weight: bold">jeśli</span> ( <span title="[java61764X1X5][G:2][Q:110]: Jakiej jesteś płci (mężczyzna/kobieta)?; wartość=M" style="color: green; font-weight: bold">płeć</span> == <span title="" style="color: gray">„M”</span> , <span title="" style="color: gray">„Pan”</span> , <span title="" style="color: gray">„Pani”</span> )</span> <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:20]: Jakie jest Twoje nazwisko/nazwisko?; wartość = Smith" style="color: green; font-weight: bold">nazwisko</span></span> , teraz jest <span style="background-color: #eee8aa;"><span title="Sformatuj lokalną datę/godzinę; ciąg data (format [, znacznik czasu=czas()])" style="color: blue; font-weight: bold">data</span> ( <span title="" style="color: gray">„g:i a”</span> , <span title="Zwróć bieżący znacznik czasu UNIX; liczba godzin()" style="color: blue; font-weight: bold">godzina</span> ())</span> . Czy wiesz, gdzie jest Twoja <span style="background-color: #eee8aa;"><span title="Oblicz sumę wartości w tablicy; suma liczb(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">suma</span> ( <span title="[java61764X1X4][G:2][Q:50]: Ile masz zwierząt domowych?; wartość=1" style="color: maroon; font-weight: bold">numPets</span> , <span title="[java61764X1X3][G:2][Q:40]: Ile masz dzieci?; wartość=2" style="color: green; font-weight: bold">numKids</span> )</span> dzieci i zwierząt domowych?


</td><td><b>Here is an example of OK syntax with tooltips</b><br>Hello <span id="LEMtailor_Q_40_1">Mr.</span> <span id="LEMtailor_Q_40_2">Smith</span>, it is now 6:07 am. Do you know where your <span id="LEMtailor_Q_40_4">3</span> children and pets are?
</td><td><b>Oto przykład składni OK z podpowiedziami</b><br> Witam, <span id="LEMtailor_Q_40_1">panie</span> <span id="LEMtailor_Q_40_2">Smith</span> , jest teraz 6:07. Czy wiesz, gdzie jest Twoja <span id="LEMtailor_Q_40_4">trójka</span> dzieci i zwierzęta?
</td></tr>
</td></tr>  
<tr><td><b>Here are common errors so you can see the tooltips</b><br>Variables used before they are declared: {notSetYet}<br>Unknown Function: {iff(numPets&gt;numKids,1,2)}<br>Unknown Variable: {sum(age,num_pets,numKids)}<br>Wrong # parameters: {sprintf()},{if(1,2)},{date()}<br>Assign read-only-vars:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}<br>Unbalanced parentheses: {pow(3,4},{(pow(3,4)},{pow(3,4))}
<tr><td> <b>Oto typowe błędy, dzięki którym możesz zobaczyć podpowiedzi</b><br> Zmienne używane przed ich zadeklarowaniem: {notSetYet}<br> Nieznana funkcja: {iff(numPets>numKids,1,2)}<br> Nieznana zmienna: {sum(age,num_pets,numKids)}<br> Błędne # parametry: {sprintf()},{if(1,2)},{date()}<br> Przypisz zmienne tylko do odczytu:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}<br> Nawiasy niezrównoważone: {pow(3,4},{(pow(3,4)},{pow(3,4))}


</td><td><b>Here are common errors so you can see the tooltips</b><br>Variables used before they are declared: <span style="background-color: #eee8aa;"><span title="This variable is not declared until a later page; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="This variable is not declared until a later page; Not a valid expression; [java61764X3X6][G:3][Q:200]: Who will win the next election?; value=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span><br>Unknown Function: <span style="background-color: #eee8aa;"><span title="Undefined function" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Undefined function" style="color: blue; font-weight: bold">iff</span></span>(<span title="[java61764X1X4][G:2][Q:50]: How many pets do you have?; value=1" style="color: maroon; font-weight: bold">numPets</span> &gt; <span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>,1,2)</span><br>Unknown Variable: <span style="background-color: #eee8aa;"><span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(<span title="[java61764X1X2][G:2][Q:30]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Undefined variable" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Undefined variable" style="color: red; font-weight: bold">num_pets</span></span>,<span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>)</span><br>Wrong # parameters: <span style="background-color: #eee8aa;"><span title="Function must have at least 1 argument(s); Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function must have at least 1 argument(s); Not a valid expression; Return a formatted string; string sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span>()</span>,<span style="background-color: #eee8aa;"><span title="Function does not support that number of arguments: 2. Function supports this many arguments, where -1=unlimited: 3; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function does not support that number of arguments: 2. Function supports this many arguments, where -1=unlimited: 3; Not a valid expression; Excel-style if(test,result_if_true,result_if_false); if(test,result_if_true,result_if_false)" style="color: blue; font-weight: bold">if</span></span>(1,2)</span>,<span style="background-color: #eee8aa;"><span title="Function does not support that number of arguments: 0. Function supports this many arguments, where -1=unlimited: 1,2; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function does not support that number of arguments: 0. Function supports this many arguments, where -1=unlimited: 1,2; Not a valid expression; Format a local date/time; string date(format [, timestamp=time()])" style="color: blue; font-weight: bold">date</span></span>()</span><br>Assign read-only-vars:<span style="background-color: #eee8aa;"><span title="The value of this variable can not be changed; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="The value of this variable can not be changed; Not a valid expression; ; value=worker" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span><span title="Assigning a new value to a variable" style="color: red; font-weight: bold">+=</span>10</span>,<span style="background-color: #eee8aa;"><span title="The value of this variable can not be changed; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="The value of this variable can not be changed; Not a valid expression; [java61764X1X1][G:1][Q:10]: What is your first/given name?; value=Peter" style="color: green; font-weight: bold">name</span></span><span title="Assigning a new value to a variable" style="color: red; font-weight: bold">=</span><span title="" style="color: gray">'Sally'</span></span><br>Unbalanced parentheses: <span style="background-color: #eee8aa;"><span title="Parentheses not balanced" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Parentheses not balanced; Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span></span>(3,4</span>,<span style="background-color: #eee8aa;"><span title="Parentheses not balanced" style="border-style: solid; border-width: 2px; border-color: red;">(</span><span title="Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span>(3,4)</span>,<span style="background-color: #eee8aa;"><span title="Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span>(3,4)<span title="Extra right parentheses detected" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>
</td><td><b>Oto typowe błędy, dzięki którym możesz zobaczyć podpowiedzi</b><br> Zmienne używane przed ich zadeklarowaniem: <span style="background-color: #eee8aa;"><span title="Ta zmienna została zadeklarowana dopiero na późniejszej stronie; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Ta zmienna została zadeklarowana dopiero na późniejszej stronie; Nieprawidłowe wyrażenie; [java61764X3X6][G:3][Q:200]: Kto wygra następne wybory?; wartość=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span><br> Nieznana funkcja: <span style="background-color: #eee8aa;"><span title="Nieokreślona funkcja" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Nieokreślona funkcja" style="color: blue; font-weight: bold">iff</span></span> ( <span title="[java61764X1X4][G:2][Q:50]: Ile masz zwierząt domowych?; wartość=1" style="color: maroon; font-weight: bold">numPets</span> > <span title="[java61764X1X3][G:2][Q:40]: Ile masz dzieci?; wartość=2" style="color: green; font-weight: bold">numKids</span> ,1,2)</span><br> Nieznana zmienna: <span style="background-color: #eee8aa;"><span title="Oblicz sumę wartości w tablicy; suma liczb(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">suma</span> ( <span title="[java61764X1X2][G:2][Q:30]: Ile masz lat?; wartość=45" style="color: green; font-weight: bold">wiek</span> , <span title="niezdefiniowana zmienna" style="border-style: solid; border-width: 2px; border-color: red;"><span title="niezdefiniowana zmienna" style="color: red; font-weight: bold">num_pets</span></span> , <span title="[java61764X1X3][G:2][Q:40]: Ile masz dzieci?; wartość=2" style="color: green; font-weight: bold">numKids</span> )</span><br> Błędne # parametry: <span style="background-color: #eee8aa;"><span title="Funkcja musi mieć co najmniej 1 argument(y); Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funkcja musi mieć co najmniej 1 argument(y); Nieprawidłowe wyrażenie; Zwróć sformatowany ciąg; string sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span> ()</span> , <span style="background-color: #eee8aa;"><span title="Funkcja nie obsługuje takiej liczby argumentów: 2. Funkcja obsługuje taką liczbę argumentów, gdzie -1=bez ograniczeń: 3; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funkcja nie obsługuje takiej liczby argumentów: 2. Funkcja obsługuje taką liczbę argumentów, gdzie -1=bez ograniczeń: 3; Nieprawidłowe wyrażenie; W stylu Excela if(test,result_if_true,result_if_false); if(test,wynik_jeśli_prawda,wynik_jeśli_fałsz)" style="color: blue; font-weight: bold">if</span></span> (1,2)</span> , <span style="background-color: #eee8aa;"><span title="Funkcja nie obsługuje takiej liczby argumentów: 0. Funkcja obsługuje tyle argumentów, gdzie -1=bez ograniczeń: 1,2; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funkcja nie obsługuje takiej liczby argumentów: 0. Funkcja obsługuje tyle argumentów, gdzie -1=bez ograniczeń: 1,2; Nieprawidłowe wyrażenie; Sformatuj lokalną datę/godzinę; ciąg data (format [, znacznik czasu=czas()])" style="color: blue; font-weight: bold">date</span></span> ()</span><br> Przypisz zmienne tylko do odczytu: <span style="background-color: #eee8aa;"><span title="Wartości tej zmiennej nie można zmienić; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Wartości tej zmiennej nie można zmienić; Nieprawidłowe wyrażenie; ; wartość = pracownik" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span> <span title="Przypisanie nowej wartości do zmiennej" style="color: red; font-weight: bold">+=</span> 10</span> , <span style="background-color: #eee8aa;"><span title="Wartości tej zmiennej nie można zmienić; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Wartości tej zmiennej nie można zmienić; Nieprawidłowe wyrażenie; [java61764X1X1][G:1][Q:10]: Jakie jest Twoje imię/imię?; wartość=Piotr" style="color: green; font-weight: bold">name</span></span> <span title="Przypisanie nowej wartości do zmiennej" style="color: red; font-weight: bold">=</span> <span title="" style="color: gray">'Sally'</span></span><br> Nawiasy niezrównoważone: <span style="background-color: #eee8aa;"><span title="Nawiasy nie są zrównoważone" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Nawiasy niezrównoważone; Wyrażenie wykładnicze; liczba pow(podstawa, exp)" style="color: blue; font-weight: bold">pow</span></span> (3,4</span> , <span style="background-color: #eee8aa;"><span title="Nawiasy nie są zrównoważone" style="border-style: solid; border-width: 2px; border-color: red;">(</span> <span title="Wyrażenie wykładnicze; liczba pow(podstawa, exp)" style="color: blue; font-weight: bold">pow</span> (3,4)</span> , <span style="background-color: #eee8aa;"><span title="Wyrażenie wykładnicze; liczba pow(podstawa, exp)" style="color: blue; font-weight: bold">pow</span> (3,4) <span title="Wykryto dodatkowe prawe nawiasy" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>


</td><td><b>Here are common errors so you can see the tooltips</b><br>Variables used before they are declared: <span id="LEMtailor_Q_40_5"><span style="background-color: #eee8aa;"><span title="This variable is not declared until a later page; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="This variable is not declared until a later page; Not a valid expression; [java61764X3X6][G:3][Q:200]: Who will win the next election?; value=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span></span><br>Unknown Function: <span style="background-color: #eee8aa;"><span title="Undefined function" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Undefined function" style="color: blue; font-weight: bold">iff</span></span>(<span title="[java61764X1X4][G:2][Q:50]: How many pets do you have?; value=1" style="color: maroon; font-weight: bold">numPets</span> &gt; <span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>,1,2)</span><br>Unknown Variable: <span style="background-color: #eee8aa;"><span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(<span title="[java61764X1X2][G:2][Q:30]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Undefined variable" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Undefined variable" style="color: red; font-weight: bold">num_pets</span></span>,<span title="[java61764X1X3][G:2][Q:40]: How many kids do you have?; value=2" style="color: green; font-weight: bold">numKids</span>)</span><br>Wrong # parameters: <span style="background-color: #eee8aa;"><span title="Function must have at least 1 argument(s); Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function must have at least 1 argument(s); Not a valid expression; Return a formatted string; string sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span>()</span>,<span style="background-color: #eee8aa;"><span title="Function does not support that number of arguments: 2. Function supports this many arguments, where -1=unlimited: 3; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function does not support that number of arguments: 2. Function supports this many arguments, where -1=unlimited: 3; Not a valid expression; Excel-style if(test,result_if_true,result_if_false); if(test,result_if_true,result_if_false)" style="color: blue; font-weight: bold">if</span></span>(1,2)</span>,<span style="background-color: #eee8aa;"><span title="Function does not support that number of arguments: 0. Function supports this many arguments, where -1=unlimited: 1,2; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Function does not support that number of arguments: 0. Function supports this many arguments, where -1=unlimited: 1,2; Not a valid expression; Format a local date/time; string date(format [, timestamp=time()])" style="color: blue; font-weight: bold">date</span></span>()</span><br>Assign read-only-vars:<span style="background-color: #eee8aa;"><span title="The value of this variable can not be changed; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="The value of this variable can not be changed; Not a valid expression; ; value=worker" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span><span title="Assigning a new value to a variable" style="color: red; font-weight: bold">+=</span>10</span>,<span id="LEMtailor_Q_40_12"><span style="background-color: #eee8aa;"><span title="The value of this variable can not be changed; Not a valid expression" style="border-style: solid; border-width: 2px; border-color: red;"><span title="The value of this variable can not be changed; Not a valid expression; [java61764X1X1][G:1][Q:10]: What is your first/given name?; value=Peter" style="color: green; font-weight: bold">name</span></span><span title="Assigning a new value to a variable" style="color: red; font-weight: bold">=</span><span title="" style="color: gray">'Sally'</span></span></span><br>Unbalanced parentheses: <span style="background-color: #eee8aa;"><span title="Parentheses not balanced" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Parentheses not balanced; Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span></span>(3,4</span>,<span style="background-color: #eee8aa;"><span title="Parentheses not balanced" style="border-style: solid; border-width: 2px; border-color: red;">(</span><span title="Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span>(3,4)</span>,<span style="background-color: #eee8aa;"><span title="Exponential expression; number pow(base, exp)" style="color: blue; font-weight: bold">pow</span>(3,4)<span title="Extra right parentheses detected" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>
</td><td><b>Oto typowe błędy, dzięki którym możesz zobaczyć podpowiedzi</b><br> Zmienne używane przed ich zadeklarowaniem: <span id="LEMtailor_Q_40_5"><span style="background-color: #eee8aa;"><span title="Ta zmienna została zadeklarowana dopiero na późniejszej stronie; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Ta zmienna została zadeklarowana dopiero na późniejszej stronie; Nieprawidłowe wyrażenie; [java61764X3X6][G:3][Q:200]: Kto wygra następne wybory?; wartość=?" style="color: #FF00FF ; font-weight: bold">notSetYet</span></span></span></span><br> Nieznana funkcja: <span style="background-color: #eee8aa;"><span title="Nieokreślona funkcja" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Nieokreślona funkcja" style="color: blue; font-weight: bold">iff</span></span> ( <span title="[java61764X1X4][G:2][Q:50]: Ile masz zwierząt domowych?; wartość=1" style="color: maroon; font-weight: bold">numPets</span> > <span title="[java61764X1X3][G:2][Q:40]: Ile masz dzieci?; wartość=2" style="color: green; font-weight: bold">numKids</span> ,1,2)</span><br> Nieznana zmienna: <span style="background-color: #eee8aa;"><span title="Oblicz sumę wartości w tablicy; suma liczb(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">suma</span> ( <span title="[java61764X1X2][G:2][Q:30]: Ile masz lat?; wartość=45" style="color: green; font-weight: bold">wiek</span> , <span title="niezdefiniowana zmienna" style="border-style: solid; border-width: 2px; border-color: red;"><span title="niezdefiniowana zmienna" style="color: red; font-weight: bold">num_pets</span></span> , <span title="[java61764X1X3][G:2][Q:40]: Ile masz dzieci?; wartość=2" style="color: green; font-weight: bold">numKids</span> )</span><br> Błędne # parametry: <span style="background-color: #eee8aa;"><span title="Funkcja musi mieć co najmniej 1 argument(y); Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funkcja musi mieć co najmniej 1 argument(y); Nieprawidłowe wyrażenie; Zwróć sformatowany ciąg; string sprintf(format, arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sprintf</span></span> ()</span> , <span style="background-color: #eee8aa;"><span title="Funkcja nie obsługuje takiej liczby argumentów: 2. Funkcja obsługuje taką liczbę argumentów, gdzie -1=bez ograniczeń: 3; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funkcja nie obsługuje takiej liczby argumentów: 2. Funkcja obsługuje taką liczbę argumentów, gdzie -1=bez ograniczeń: 3; Nieprawidłowe wyrażenie; W stylu Excela if(test,result_if_true,result_if_false); if(test,wynik_jeśli_prawda,wynik_jeśli_fałsz)" style="color: blue; font-weight: bold">if</span></span> (1,2)</span> , <span style="background-color: #eee8aa;"><span title="Funkcja nie obsługuje takiej liczby argumentów: 0. Funkcja obsługuje tyle argumentów, gdzie -1=bez ograniczeń: 1,2; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Funkcja nie obsługuje takiej liczby argumentów: 0. Funkcja obsługuje tyle argumentów, gdzie -1=bez ograniczeń: 1,2; Nieprawidłowe wyrażenie; Sformatuj lokalną datę/godzinę; ciąg data (format [, znacznik czasu=czas()])" style="color: blue; font-weight: bold">date</span></span> ()</span><br> Przypisz zmienne tylko do odczytu: <span style="background-color: #eee8aa;"><span title="Wartości tej zmiennej nie można zmienić; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Wartości tej zmiennej nie można zmienić; Nieprawidłowe wyrażenie; ; wartość = pracownik" style="color: #996600; font-weight: bold">TOKEN:ATTRIBUTE_1</span></span> <span title="Przypisanie nowej wartości do zmiennej" style="color: red; font-weight: bold">+=</span> 10</span> , <span id="LEMtailor_Q_40_12"><span style="background-color: #eee8aa;"><span title="Wartości tej zmiennej nie można zmienić; Nieprawidłowe wyrażenie" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Wartości tej zmiennej nie można zmienić; Nieprawidłowe wyrażenie; [java61764X1X1][G:1][Q:10]: Jakie jest Twoje imię/imię?; wartość=Piotr" style="color: green; font-weight: bold">name</span></span> <span title="Przypisanie nowej wartości do zmiennej" style="color: red; font-weight: bold">=</span> <span title="" style="color: gray">'Sally'</span></span></span><br> Nawiasy niezrównoważone: <span style="background-color: #eee8aa;"><span title="Nawiasy nie są zrównoważone" style="border-style: solid; border-width: 2px; border-color: red;"><span title="Nawiasy niezrównoważone; Wyrażenie wykładnicze; liczba pow(podstawa, exp)" style="color: blue; font-weight: bold">pow</span></span> (3,4</span> , <span style="background-color: #eee8aa;"><span title="Nawiasy nie są zrównoważone" style="border-style: solid; border-width: 2px; border-color: red;">(</span> <span title="Wyrażenie wykładnicze; liczba pow(podstawa, exp)" style="color: blue; font-weight: bold">pow</span> (3,4)</span> , <span style="background-color: #eee8aa;"><span title="Wyrażenie wykładnicze; liczba pow(podstawa, exp)" style="color: blue; font-weight: bold">pow</span> (3,4) <span title="Wykryto dodatkowe prawe nawiasy" style="border-style: solid; border-width: 2px; border-color: red;">)</span></span>


</td></tr>
</td></tr>
<tr><td><b>Here is some of the unsupported syntax</b><br>No support for '++', '--', '%',';': {min(++age, --age,age % 2);}<br>Nor '|', '&amp;', '^': {(sum(2 | 3,3 &amp; 4,5 ^ 6)}}<br>Nor arrays: {name[2], name['mine']}
<tr><td> <b>Oto część nieobsługiwanej składni</b><br> Brak obsługi „++, --, %, ;: {min(++age, --age,age % 2);}<br> Ani „|, &, ^: {(suma(2 | 3,3 i 4,5 ^ 6)}}<br> Ani tablice: {name[2], name['moje']}
</td><td><b>Here is some of the unsupported syntax</b><br>No support for '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Find lowest value; number min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span>(<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ++ </span><span title="[java61764X1X2][G:2][Q:30]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> -- </span><span title="[java61764X1X2][G:2][Q:30]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="[java61764X1X2][G:2][Q:30]: How old are you?; value=45" style="color: green; font-weight: bold">age</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> % </span>2)<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ; </span></span><br>Nor '|', '&amp;', '^': <span style="background-color: #eee8aa;">(<span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(2<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> | </span>3,3<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> &amp; </span>4,5<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ^ </span>6)</span>}<br>Nor arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: What is your first/given name?; value=Peter" style="color: green; font-weight: bold">name</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> [ </span>2<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ] </span>,<span title="[java61764X1X1][G:1][Q:10]: What is your first/given name?; value=Peter" style="color: green; font-weight: bold">name</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> [ </span><span title="" style="color: gray">'mine'</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ] </span></span>
</td><td> <b>Oto część nieobsługiwanej składni</b><br> Brak obsługi '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Znajdź najniższą wartość; liczba min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span> ( <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">++</span> <span title="[java61764X1X2][G:2][Q:30]: Ile masz lat?; wartość=45" style="color: green; font-weight: bold">wiek</span> , <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">--</span> <span title="[java61764X1X2][G:2][Q:30]: Ile masz lat?; wartość=45" style="color: green; font-weight: bold">wiek</span> , <span title="[java61764X1X2][G:2][Q:30]: Ile masz lat?; wartość=45" style="color: green; font-weight: bold">wiek</span> <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">%</span> 2) <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">;</span></span><br> Ani „|, &, ^: <span style="background-color: #eee8aa;">( <span title="Oblicz sumę wartości w tablicy; suma liczb(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">suma</span> (2 <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">|</span> 3,3 <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">i</span> 4,5 <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">^</span> 6)</span> }<br> Ani tablice: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: Jakie jest Twoje imię/imię?; wartość=Piotr" style="color: green; font-weight: bold">nazwa</span> <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">[</span> 2 <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">]</span> , <span title="[java61764X1X1][G:1][Q:10]: Jakie jest Twoje imię/imię?; wartość=Piotr" style="color: green; font-weight: bold">nazwa</span> <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">[</span> <span title="" style="color: gray">'moje'</span> <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">]</span></span>


</td><td><b>Here is some of the unsupported syntax</b><br>No support for '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Find lowest value; number min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span>(<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ++ </span><span title="[java61764X1X2][G:2][Q:30]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> -- </span><span title="[java61764X1X2][G:2][Q:30]: How old are you?; value=45" style="color: green; font-weight: bold">age</span>,<span title="[java61764X1X2][G:2][Q:30]: How old are you?; value=45" style="color: green; font-weight: bold">age</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> % </span>2)<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ; </span></span><br>Nor '|', '&amp;', '^': <span style="background-color: #eee8aa;">(<span title="Calculate the sum of values in an array; number sum(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">sum</span>(2<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> | </span>3,3<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> &amp; </span>4,5<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ^ </span>6)</span>}<br>Nor arrays: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: What is your first/given name?; value=Peter" style="color: green; font-weight: bold">name</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> [ </span>2<span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ] </span>,<span title="[java61764X1X1][G:1][Q:10]: What is your first/given name?; value=Peter" style="color: green; font-weight: bold">name</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> [ </span><span title="" style="color: gray">'mine'</span><span title="Unsupported syntax" style="border-style: solid; border-width: 2px; border-color: red;"> ] </span></span>
</td><td><b>Oto część nieobsługiwanej składni</b><br> Brak obsługi '++', '--', '%',';': <span style="background-color: #eee8aa;"><span title="Znajdź najniższą wartość; liczba min(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">min</span> ( <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">++</span> <span title="[java61764X1X2][G:2][Q:30]: Ile masz lat?; wartość=45" style="color: green; font-weight: bold">wiek</span> , <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">--</span> <span title="[java61764X1X2][G:2][Q:30]: Ile masz lat?; wartość=45" style="color: green; font-weight: bold">wiek</span> , <span title="[java61764X1X2][G:2][Q:30]: Ile masz lat?; wartość=45" style="color: green; font-weight: bold">wiek</span> <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">%</span> 2) <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">;</span></span><br> Ani „|, &, ^: <span style="background-color: #eee8aa;">( <span title="Oblicz sumę wartości w tablicy; suma liczb(arg1, arg2, ... argN)" style="color: blue; font-weight: bold">suma</span> (2 <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">|</span> 3,3 <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">i</span> 4,5 <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">^</span> 6)</span> }<br> Ani tablice: <span style="background-color: #eee8aa;"><span title="[java61764X1X1][G:1][Q:10]: Jakie jest Twoje imię/imię?; wartość=Piotr" style="color: green; font-weight: bold">nazwa</span> <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">[</span> 2 <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">]</span> , <span title="[java61764X1X1][G:1][Q:10]: Jakie jest Twoje imię/imię?; wartość=Piotr" style="color: green; font-weight: bold">nazwa</span> <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">[</span> <span title="" style="color: gray">'moje'</span> <span title="Nieobsługiwana składnia" style="border-style: solid; border-width: 2px; border-color: red;">]</span></span>


</td></tr>
</td></tr>
Line 99: Line 97:




=Tailoring Examples (e.g. extending {INSERTANS:xxx})=
=Przykłady krawiectwa (np. rozszerzenie {INSERTANS:xxx})=




=="Dear {Mr}/{Mrs} Smith..."==
=="Szanowny {Panie}/{Pani} Smith..."==




Use the if() function to conditionally choose whether to display 'Mr.' or 'Mrs.'.
Użyj funkcji if(), aby warunkowo wybrać, czy wyświetlać „Pan”. lub „Pani”.


The syntax is if(test,do_if_true,do_if_false).
Składnia jest następująca: if(test,do_if_true,do_if_false).


{|
{|
|#||Code||Question||Type
|#||Kod||Pytanie||Wpisz
|-
|-
|1||gender||What is your gender?||Gender
|1||płeć||Jaka jest Twoja płeć?||Płeć
|-
|-
|2||example1||Dear {if(gender=='M','Mr.','Mrs.')} Smith, ...||Long free text
|2| |example1||Szanowny {if(gender=='M','Pan','Pani')} Smith, ...||Długi tekst
|}
|}


Line 121: Line 119:




As it can be observed below, "Mr" and "Mrs" are tailored to what the respondent selects as answer to question "gender".
Jak można zaobserwować poniżej, określenia „Pan” i „Pani” są dopasowane do tego, co respondent wybiera jako odpowiedź na pytanie „płeć”.




Line 128: Line 126:




=="Dear {Mr}/{Mrs} Smith..." in invitation email==
=="Szanowny {Panie}/{Pani} Smith..." w e-mailu z zaproszeniem==




You can use the example above in the invitation email using attributes from the token table. Use the if() function to choose whether 'Mr.' or 'Mrs.' should be used in the email.
Możesz wykorzystać powyższy przykład w wiadomości e-mail z zaproszeniem, korzystając z atrybutów z tabeli tokenów. Użyj funkcji if(), aby wybrać, czy „Pan”. lub „Pani”. należy użyć w wiadomości e-mail.




The syntax is "if(test,do_if_true,do_if_false)".
Składnia jest następująca: „if(test,do_if_true,do_if_false).


{|
{|
|#||attribute||value
|#||atrybut||wartość
|-
|-
|1||Last name||Smith
|1||Nazwisko||Smith
|-
|-
|2||Email address||test@test.com
|2||Adres e-mail||test@test. com
|-
|-
|3||ATTRIBUTE_2||M
|3||ATRYBUT_2||M
|}
|}




Text in invitation email:
Tekst w e-mailu z zaproszeniem:


<syntaxhighlight lang="php">
<syntaxhighlight lang="php">


Dear {if(ATTRIBUTE_2=='M','Mr','Mrs')} {LASTNAME},
Drogi {if(ATTRIBUTE_2=='M','Pan','Pani')} {LASTNAME},


you have been invited to participate in a survey:
zostałeś zaproszony do wzięcia udziału w ankiecie:


https:/...
https://...


</syntaxhighlight>
</syntaxhighlight>
Line 163: Line 161:




email View:
e-mail Widok:




Line 169: Line 167:




=Calculation / Assessment Examples=
=Przykłady obliczeń/oceny=




==Calculate assessment values at runtime and store the results in the survey data==
==Oblicz wartości oceny w czasie wykonywania i zapisz wyniki w danych ankiety==




This example uses all of EM's features, including Relevance, Tailoring, and the Equation question type.
W tym przykładzie wykorzystano wszystkie funkcje EM, w tym trafność, dopasowanie i typ pytania Równanie.


It also shows that all of them are JavaScript-enabled, so if you have these features on a page, it will dynamically change as people set and change their answers.
Pokazuje również, że wszystkie z nich obsługują JavaScript, więc jeśli masz te funkcje na stronie, będzie ona dynamicznie się zmieniać, gdy ludzie będą ustawiać i zmieniać swoje odpowiedzi.


{|
{|
|#||Code||Question||Type||Relevance
|#||Kod||Pytanie||Typ||Trafność
|-
|1||numKids||How many children do you have?||Numerical input||1
|-
|2||kid1||How old is your first child?||Numerical input||numKids >= 1
|-
|-
|3||kid2||How old is your second child?||Numerical input||numKids >= 2
|1||numKids||Ile masz dzieci?||Wprowadzenie numeryczne||1!N !|-
|2||kid1||Ile lat ma Twoje pierwsze dziecko?||Wprowadzenie numeryczne||numKids >= 1
|-
|-
|4||kid3||How old is your third child?||Numerical input||numKids >= 3
|3||kid2||Ile lat ma Twoje drugie dziecko dziecko?||Wprowadzenie liczbowe||numKids >= 2
|-
|-
|5||kid4||How old is your fourth child?||Numerical input||numKids >= 4
|4||kid3||Ile lat ma Twoje trzecie dziecko?||Wprowadzenie liczbowe||numKids >= 3
|-! N!|5||kid4||Ile lat ma Twoje czwarte dziecko?||Wprowadzenie liczbowe||numKids >= 4
|-
|-
|6||sumKidAges||{sum(kid1.NAOK,kid2.NAOK,kid3.NAOK,kid4.NAOK)}||Equation||1
|6||sumKidAges||{sum(kid1.NAOK,kid2. NAOK,kid3.NAOK,kid4.NAOK)}||Równanie||1
|-
|-
|7||kidSummary||You said that you have {numKids}. {if(numKids==1,'child','children')}. {if(numKids>1,implode(' ','The sum of ages of your first ',min(numKids,4),' kids is ',sumKidAges,'.'),' ')}||Text display||1
|7||kidSummary||Powiedziałeś, że masz {numKids}. {if(numKids==1,'dziecko','dzieci')}. {if(numKids>1,implode(' ','Suma wieku Twoich pierwszych ',min(numKids,4),' dzieci to ',sumKidAges,'.'),' ')}||Wyświetlanie tekstu| |1
|}
|}




To download this example, please click on the following link: [[Media:Assessments_survey_example.zip|Assessments_survey_example]].
Aby pobrać ten przykład, kliknij poniższy link: [[Media:Assessments_survey_example.zip|Assessments_survey_example]].




You may find below screenshots of representative questions. As you can see, EM syntax-highlights all fields that might contain tailoring. Here, you see examples of syntax-highlighting Relevance, the Equation question type, and substitutions within a question. You can also use substitutions within Help, Group header display, Welcome message, and End message.
Poniżej możesz znaleźć zrzuty ekranu z reprezentatywnymi pytaniami. Jak widać, składnia EM podświetla wszystkie pola, które mogą zawierać dostosowywanie. Tutaj zobaczysz przykłady trafności podświetlania składni, typu pytania Równanie i podstawień w pytaniu. Możesz także użyć podstawień w ramach Pomocy, wyświetlania nagłówka grupy, wiadomości powitalnej i wiadomości końcowej.


In the next example, since the relevance is {numKids >= 2), the question will only be visible if the respondent reports that she has at least two children.
W następnym przykładzie, ponieważ trafność wynosi {numKids >= 2), pytanie będzie widoczne tylko wtedy, gdy respondent zgłosi, że ma co najmniej dwójkę dzieci.




Line 209: Line 205:




Below, you may observe that each variable has the .NAOK suffix attached to it. This is because of how EM supports cascading relevance. If you did not have .NAOK, then the sum would only be computed if the person said she has 4 children (e.g., if all of the variables are relevant). The usage of .NAOK means that we want to compute the sum even if all or some of the variables are irrelevant (e.g., "Not Applicable" (NA) is alright (OK)).
Poniżej możesz zauważyć, że do każdej zmiennej dołączony jest przyrostek .NAOK. Dzieje się tak ze względu na sposób, w jaki EM obsługuje znaczenie kaskadowe. Jeśli nie masz .NAOK, suma zostanie obliczona tylko wtedy, gdy dana osoba oświadczyła, że ma 4 dzieci (np. jeśli wszystkie zmienne są istotne). Użycie .NAOK oznacza, że chcemy obliczyć sumę, nawet jeśli wszystkie lub niektóre zmienne są nieistotne (np. „Nie dotyczy” (NA) jest w porządku (OK)).


However, the .NAOK attribute only affects whether variables are passed into EM. If the respondent initially says she has 3 children, and enters ages for each, then changes her mind and says she has 2, we don't want to see the sum of the 3 entered values - since the third child is "not applicable" in our case anymore:
Jednak atrybut .NAOK wpływa tylko na to, czy zmienne są przekazywane do EM. Jeśli respondentka początkowo twierdzi, że ma 3 dzieci i podaje wiek każdego z nich, potem zmienia zdanie i twierdzi, że ma 2, to nie chcemy widzieć sumy 3 wprowadzonych wartości - ponieważ trzecie dziecko „nie dotyczy” w naszym przypadku już:




Line 217: Line 213:




Each separate Expression is color coded with a tan background. As you can see, there are three separate Expressions here. The last one contains a message that is conditionally shown only if the person has more than one child.
Każde oddzielne wyrażenie jest oznaczone kolorem i brązowym tłem. Jak widać, są tu trzy osobne wyrażenia. Ostatnia zawiera komunikat, który wyświetla się warunkowo tylko wtedy, gdy dana osoba ma więcej niż jedno dziecko.




Line 223: Line 219:




Now, here are screenshots of the survey in action.
Oto zrzuty ekranu przedstawiające ankietę w akcji.


When you first visit the page, you see this. Note that is says "You have 0 '''children'''" instead of "You have 0 '''child'''".
Kiedy po raz pierwszy odwiedzasz tę stronę, widzisz to. Zauważ, że jest napisane „Masz 0 dzieci” zamiast „Masz 0 dzieci”.




Line 231: Line 227:




If I change the value for number of children to 1, the display instantly changes to this, even though it is on the same page:
Jeśli zmienię wartość liczby dzieci na 1, wyświetlacz natychmiast zmieni się na następujący, mimo że znajduje się na tej samej stronie:




Line 237: Line 233:




Now notice that the grammar is correct: "You have 1 '''child'''".
Teraz zauważ, że gramatyka jest poprawna: „Masz 1 „dziecko””.


Now I change the value for number of children to 3, and the display instantly changes to this.
Teraz zmieniam wartość liczby dzieci na 3, a wyświetlacz natychmiast się na nią zmienia.


Notice that you now see the conditional message at the bottom:  "The sum of ages of your first 3 kids is 0.".
Zwróć uwagę, że na dole widzisz komunikat warunkowy: „Suma wieku twoich pierwszych 3 dzieci wynosi 0”.




Line 247: Line 243:




Now I'll enter ages for my imaginary children, and I get this display, summing up their ages:
Teraz wprowadzę wiek moich wyimaginowanych dzieci i otrzymuję następujący ekran podsumowujący ich wiek:




Line 253: Line 249:




Again, the score and display updates instantly as I enter the values, so you can use this to show a running total of an Assessment Score.
Ponownie, wynik i wyświetlacz aktualizują się natychmiast po wprowadzeniu wartości, więc możesz użyć tego do wyświetlenia bieżącej sumy Wyniku Oceny.




Now, I change the value for the number of children to 2. The display has changed to this:
Teraz zmieniam wartość liczby dzieci na 2. Wyświetlacz zmienił się na następujący:




Line 262: Line 258:




Notice that although I had entered a value of 5.5 for the third child, the report now only sums the values of my first 2 children.
Zauważ, że chociaż dla trzeciego dziecka wprowadziłem wartość 5,5, w raporcie sumowane są teraz tylko wartości moich pierwszych dwojga dzieci.


The reason for this is that the 3rd value is now irrelevant, and irrelevant values are actively ignored by EM.
Powodem tego jest to, że trzecia wartość jest teraz nieistotna, a nieistotne wartości są aktywnie ignorowane przez EM.


If I were to change the number of kids back to 3, I would see the value of 5.5 I entered again. So, I don't lose any information I enter on the page.
Gdybym miał ponownie zmienić liczbę dzieci na 3, ponownie zobaczyłbym wprowadzoną wartość 5,5. Dzięki temu nie tracę żadnych informacji, które wprowadzam na stronie.


However, if I navigate to the Next or Previous page, all irrelevant values will be NULLed out in the session and in the database. So, if I were to keep the value at 2, go to the next page, and then come back and state that I actually have 3 kids, I would no longer see the age of 5.5.
Jeśli jednak przejdę do następnej lub poprzedniej strony, wszystkie nieistotne wartości zostaną usunięte w sesji i bazie danych. Tak więc, jeśli miałbym utrzymać wartość na poziomie 2, przejść do następnej strony, a następnie wrócić i stwierdzić, że tak naprawdę mam 3 dzieci, nie widziałbym już wieku 5,5.




==Enter data and see a dynamically changing report of what was entered on the same page==
==Wprowadź dane i zobacz dynamicznie zmieniający się raport tego, co zostało wprowadzone na tej samej stronie==




This example presents the Tailoring process within LimeSurvey.
Ten przykład przedstawia proces krawiectwa w LimeSurvey.


To download this example, click on the following link: [[Media:Dynamic_change_of_the_report_when_data_is_entered_on_the_same_page_survey.zip|Dynamic changes survey example]].
Aby pobrać ten przykład, kliknij następujący link: [[Media:Dynamic_change_of_the_report_when_data_is_entered_on_the_same_page_survey.zip|Przykład ankiety dotyczącej zmian dynamicznych]].


Here is what the page looks like initially. You only see the question asking what city you live in:
Oto jak strona wygląda na początku. Widzisz tylko pytanie, w jakim mieście mieszkasz:




Line 284: Line 280:




Once you start to enter an answer, the tailoring process is also starting:
Gdy zaczniesz wpisywać odpowiedź, rozpoczyna się również proces dostosowywania:


<center>[[File:em-on_page_report-usage-2.jpg]]</center>
<center>[[File:em-on_page_report-usage-2.jpg]]</center>




As you enter answers, the table at the bottom of the page is updated to show the answer codes and values of your responses.
W miarę wpisywania odpowiedzi tabela u dołu strony jest aktualizowana i wyświetla kody odpowiedzi oraz wartości Twoich odpowiedzi.




<center>[[File:em-on_page_report-usage-3.jpg]]</center>
<center>[[File:em-on_page_report-usage-3.jpg]]</center>


=Common Debugging Examples=
=Typowe przykłady debugowania=




==Nested if() Statements (Conditional Logic)==
==Zagnieżdżone instrukcje if() (logika warunkowa)==




EM supports the function "if(test,do_if_true,do_if_false)" so that you can perform conditional logic or tailoring. This function can be nested to do the equivalent of "if { } else if { } else {  }". EM will let you know if the parentheses are not balanced (e.g., you are missing a closing right parenthesis), or if you have any extra right parentheses. You should try to count the parentheses as you compose long nested if statements, save it, check for syntax errors, and fix them if any are found. Let's check together the below example.  
EM obsługuje funkcję „if(test,do_if_true,do_if_false)”, dzięki czemu można wykonywać logikę warunkową lub dostosowywanie. Tę funkcję można zagnieżdżać, aby uzyskać odpowiednik „if { } else if { } else { }. EM poinformuje Cię, jeśli nawiasy nie są zrównoważone (np. brakuje Ci prawego nawiasu zamykającego) lub jeśli masz dodatkowe prawe nawiasy. Powinieneś spróbować policzyć nawiasy podczas tworzenia długo zagnieżdżonych instrukcji if, zapisać je, sprawdzić błędy składniowe i naprawić je, jeśli jakieś zostaną znalezione. Sprawdźmy wspólnie poniższy przykład.  


The group of questions used below can be accessed from here: [[Media:Example_tailoring_group11.zip|Tailoring survey example.lsg]]
Dostęp do poniższej grupy pytań można uzyskać tutaj: [[Media:Example_tailoring_group11.zip|Ankieta krawiecka przykład.lsg]]




First, with nothing entered, you just see "Hello."
Po pierwsze, gdy nic nie zostało wprowadzone, zobaczysz po prostu „Witam”.




Line 311: Line 307:




If you enter a name, it says, "Hello {name}."
Jeśli wpiszesz nazwę, wyświetli się komunikat „Witam {imię}.




Line 317: Line 313:




If you enter an age, you get a tailored message, depending upon whether you are a pre-school-age child or not:
Jeśli podasz wiek, otrzymasz wiadomość dostosowaną do tego, czy jesteś dzieckiem w wieku przedszkolnym, czy nie:




Line 323: Line 319:




School aged, teenager, or adult. Here is a  teenager who wants to be anonymous:
W wieku szkolnym, nastolatkiem lub dorosłym. Oto nastolatka, która chce zachować anonimowość:




Line 329: Line 325:




Here is the logic file of the group. As you can see in the "if-based" question, there are nested if statements based upon the person's age.
Oto plik logiczny grupy. Jak widać w pytaniu „jeśli”, istnieją zagnieżdżone stwierdzenia if oparte na wieku osoby.




Line 335: Line 331:




When you are originally editing this question, it is likely that at some point, you will have the wrong number of parentheses. Here's what happens if you have too few:
Kiedy pierwotnie edytujesz to pytanie, prawdopodobnie w pewnym momencie będziesz mieć niewłaściwą liczbę nawiasów. Oto, co się stanie, jeśli będzie ich za mało:




Line 341: Line 337:




If you hover over the word "if", which is surrounded by a red box, it says "Parentheses not balanced". In this case, there should be four closing parentheses after "already an adult!", but there are only three.
Jeśli najedziesz kursorem na słowo „jeśli” otoczone czerwoną ramką, pojawi się informacja „Niezrównoważone nawiasy”. W tym przypadku po „już dorosły!” powinny znajdować się cztery nawiasy zamykające, a są ich tylko trzy.


If, on the other hand, you have an extra right parenthesis, it will be surrounded by a red box, like this:
Jeśli natomiast masz dodatkowy prawy nawias, zostanie on otoczony czerwoną ramką, jak poniżej:




Line 349: Line 345:




When you are actually editing the question, the question looks like this:
Kiedy faktycznie edytujesz pytanie, pytanie wygląda następująco:




<center>[[File:em-nested-if-edit-screen.jpg]]</center>
<center>[[File:em-nested-if-edit-screen.jpg]]</center>

Latest revision as of 15:44, 13 September 2023


Przegląd tego, co zostało wcześniej wyjaśnione

Jeśli do tej pory śledziłeś strukturę podręcznika LimeSurvey, oznacza to, że znasz już terminologia LimeSurvey. Następnie omówiliśmy wyrażenia i zmienne, aby dowiedzieć się, jak ulepszyć nasze ankiety. W następnej części przeszliśmy do typów i znaczeń podświetlanie składni, aby dowiedzieć się, jak poprawić błędy składniowe.

Po omówieniu tych podstawowych pojęć moglibyśmy przejść do przykładów i wyjaśnienia, jak działają wyrażenia w LimeSurvey.


Podświetlanie składni

Poniższe zrzuty ekranu przedstawiają przykłady, ale nie pokazują wartości podpowiedzi. Etykietka narzędzia to pole informacyjne wyświetlane po najechaniu myszką na pogrubione kolorowe słowa.

Dzięki podświetleniu składni bardzo łatwo jest tworzyć poprawne wyrażenia, nawet te skomplikowane. Chociaż zespół LimeSurvey planuje spróbować zbudować GUI Konstruktora wyrażeń, możesz użyć istniejącego podświetlania składni, aby szybko identyfikować i naprawiać literówki. Możesz także użyć podpowiedzi, aby sprawdzić dokładność wyrażeń (np. potwierdzić, że wybrałeś żądane zmienne).

W każdym z przykładów znajdują się trzy kolumny:

  1. Source - to jest surowy tekst, który należy wpisać w polu pytania LimeSurvey
  2. Pretty Print - jest to podświetlony składniowo odpowiednik tego, co wpisałeś! N!#*Zauważ, że w tym podświetleniu wyrażenia są wyświetlane na brązowym tle, ale nie są otoczone nawiasami klamrowymi.
    • Ponieważ EM obsługuje podstawienia rekurencyjne, pokazanie nawiasów klamrowych w podświetleniu spowodowałoby błędy składniowe
  3. Result - to jest wynik generowany, gdy EM przetwarza źródło
    • Wszystko, co można poprawnie zastąpić, to
    • Wyrażenia z błędami są wyświetlane w linii, z podświetlaniem składni. Błędy są otoczone czerwoną linią.


Właściwa składnia

Poniżej znajdziesz przykłady poprawnej składni:

  1. Values: pokazuje, że znane zmienne są oznaczone kolorami w zależności od tego, czy są ustawione na bieżącej stronie. INSERTANS:xxxx w starym stylu otrzymuje swój własny styl kodowania kolorami
  2. Atrybuty pytania: pokazuje, że notacja z kropkami może uzyskać dostęp do niektórych właściwości pytań
  3. Math: pokazuje, że obsługiwane są podstawowe i złożone obliczenia
  4. TextProcessing: pokazuje niektóre dostępne funkcje przetwarzania tekstu
  5. Dates: pokazuje dwie dostępne funkcje związane z datą
  6. Conditional: pokazuje użycie funkcji if(). Opcje można zagnieżdżać.
  7. Dostosowany akapit: możesz całkowicie dostosować raport w oparciu o wcześniejsze wartości
  8. EM procesy w ciągach: pokazuje, że może dokonywać podstawień w ciągach. Ten przykład generuje dostosowaną nazwę obrazu.
  9. EM nie przetwarza nawiasów klamrowych w następujący sposób: pokazuje, że jeśli nawiasy klamrowe zostaną zmienione lub pomiędzy wyrażeniem a nawiasami klamrowymi znajduje się spacja, ES ignoruje wyrażenie.



Składnia EM zawierająca błędy

Oto przykłady typowych błędów podczas wpisywania wyrażeń ES. Zwróć uwagę, że podpowiedzi zawierają dodatkowe informacje.

  1. Inline Javascript, który zapomniał dodać spacji po nawiasie klamrowym
    • Ponieważ „document.write” pojawia się zaraz po nawiasie klamrowym, EM uważa, że jest to wyrażenie i red- pola „dokumentuj” i „zapisz”, ponieważ są to odpowiednio niezdefiniowane zmienne i funkcje
  2. Nieznane/błędnie napisane zmienne, funkcje i operatory
    • Tutaj zapomnieliśmy, że używamy nazwy zmiennej „gender” zamiast „ sex”, ale EM wychwytuje ten błąd. Zaznacza także „++”, ponieważ nie jest to obsługiwany operator.
  3. Ostrzega, jeśli użyje = zamiast eq lub wykona przypisania wartości
    • Zauważ, że „=” i „+=” są zapisane czerwonym tekstem, a nie czarnym. Jeśli najedziesz na nie myszką, zobaczysz ostrzeżenie, że przypisujesz wartość.
  4. Zła liczba argumentów funkcji
    • if() przyjmuje 3 argumenty, ale podano jej 4, więc najechanie nad zaznaczonym na czerwono „if” wyjaśni błąd i pokaże obsługiwaną składnię
    • sum() przyjmuje nieograniczoną liczbę argumentów, ale przed nawiasem zamykającym mieliśmy końcowy przecinek, więc jest to zaznaczone na czerwono! N!#Niedopasowane nawiasy
    • To jeden z najczęstszych błędów podczas zapisywania wyrażeń.
    • Pokazuje dwa przykłady braku nawiasów zamykających i jeden przykład posiadania o jeden za dużo nawiasów zamykających.
#Nieobsługiwana składnia
    • Jeśli użyjesz operatora lub znaków interpunkcyjnych, których ES nie obsługuje, zostanie to zaznaczone czerwoną ramką.
  1. Nieprawidłowe przypisania
    • Niektóre zmienne mają funkcję readWrite i można zmienić ich wartości. Inne są tylko do odczytu.
    • Jeśli spróbujesz zmienić wartość zmiennej tylko do odczytu, nie będzie to możliwe. EM oznaczy próbę czerwoną ramką.
    • Jeśli spróbujesz przypisać wartość do równania lub ciągu znaków, również otrzymasz błąd



"Żywe" przykłady podświetlania składni z aktywnymi podpowiedziami

Źródło Ładny nadruk Wynik
Oto przykład składni OK z podpowiedziami
Witaj {if(gender=='M','Pan','Pani')} {nazwisko}, jest teraz {data('g:i a',time())}. Czy wiesz, gdzie są Twoje {sum(numPets,numKids)} dzieci i zwierzęta?
Oto przykład składni OK z podpowiedziami
Witaj , jeśli ( płeć == „M” , „Pan” , „Pani” ) nazwisko , teraz jest data ( „g:i a” , godzina ()) . Czy wiesz, gdzie jest Twoja suma ( numPets , numKids ) dzieci i zwierząt domowych?
Oto przykład składni OK z podpowiedziami
Witam, panie Smith , jest teraz 6:07. Czy wiesz, gdzie jest Twoja trójka dzieci i zwierzęta?
Oto typowe błędy, dzięki którym możesz zobaczyć podpowiedzi
Zmienne używane przed ich zadeklarowaniem: {notSetYet}
Nieznana funkcja: {iff(numPets>numKids,1,2)}
Nieznana zmienna: {sum(age,num_pets,numKids)}
Błędne # parametry: {sprintf()},{if(1,2)},{date()}
Przypisz zmienne tylko do odczytu:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}
Nawiasy niezrównoważone: {pow(3,4},{(pow(3,4)},{pow(3,4))}
Oto typowe błędy, dzięki którym możesz zobaczyć podpowiedzi
Zmienne używane przed ich zadeklarowaniem: notSetYet
Nieznana funkcja: iff ( numPets > numKids ,1,2)
Nieznana zmienna: suma ( wiek , num_pets , numKids )
Błędne # parametry: sprintf () , if (1,2) , date ()
Przypisz zmienne tylko do odczytu: TOKEN:ATTRIBUTE_1 += 10 , name = 'Sally'
Nawiasy niezrównoważone: pow (3,4 , ( pow (3,4) , pow (3,4) )
Oto typowe błędy, dzięki którym możesz zobaczyć podpowiedzi
Zmienne używane przed ich zadeklarowaniem: notSetYet
Nieznana funkcja: iff ( numPets > numKids ,1,2)
Nieznana zmienna: suma ( wiek , num_pets , numKids )
Błędne # parametry: sprintf () , if (1,2) , date ()
Przypisz zmienne tylko do odczytu: TOKEN:ATTRIBUTE_1 += 10 , name = 'Sally'
Nawiasy niezrównoważone: pow (3,4 , ( pow (3,4) , pow (3,4) )
Oto część nieobsługiwanej składni
Brak obsługi „++”, „--”, „%”, „;”: {min(++age, --age,age % 2);}
Ani „|”, „&”, „^”: {(suma(2 | 3,3 i 4,5 ^ 6)}}
Ani tablice: {name[2], name['moje']}
Oto część nieobsługiwanej składni
Brak obsługi '++', '--', '%',';': min ( ++ wiek , -- wiek , wiek % 2) ;
Ani „|”, „&”, „^”: ( suma (2 | 3,3 i 4,5 ^ 6) }
Ani tablice: nazwa [ 2 ] , nazwa [ 'moje' ]
Oto część nieobsługiwanej składni
Brak obsługi '++', '--', '%',';': min ( ++ wiek , -- wiek , wiek % 2) ;
Ani „|”, „&”, „^”: ( suma (2 | 3,3 i 4,5 ^ 6) }
Ani tablice: nazwa [ 2 ] , nazwa [ 'moje' ]


Przykłady krawiectwa (np. rozszerzenie {INSERTANS:xxx})

"Szanowny {Panie}/{Pani} Smith..."

Użyj funkcji if(), aby warunkowo wybrać, czy wyświetlać „Pan”. lub „Pani”.

Składnia jest następująca: if(test,do_if_true,do_if_false).

# Kod Pytanie Wpisz
1 płeć Jaka jest Twoja płeć? Płeć
|example1 Szanowny {if(gender=='M','Pan','Pani')} Smith, ... Długi tekst



Jak można zaobserwować poniżej, określenia „Pan” i „Pani” są dopasowane do tego, co respondent wybiera jako odpowiedź na pytanie „płeć”.



"Szanowny {Panie}/{Pani} Smith..." w e-mailu z zaproszeniem

Możesz wykorzystać powyższy przykład w wiadomości e-mail z zaproszeniem, korzystając z atrybutów z tabeli tokenów. Użyj funkcji if(), aby wybrać, czy „Pan”. lub „Pani”. należy użyć w wiadomości e-mail.


Składnia jest następująca: „if(test,do_if_true,do_if_false)”.

# atrybut wartość
1 Nazwisko Smith
2 Adres e-mail test@test. com
3 ATRYBUT_2 M


Tekst w e-mailu z zaproszeniem:

Drogi {if(ATTRIBUTE_2=='M','Pan','Pani')} {LASTNAME},

zostałeś zaproszony do wzięcia udziału w ankiecie:

https://...



e-mail Widok:



Przykłady obliczeń/oceny

Oblicz wartości oceny w czasie wykonywania i zapisz wyniki w danych ankiety

W tym przykładzie wykorzystano wszystkie funkcje EM, w tym trafność, dopasowanie i typ pytania Równanie.

Pokazuje również, że wszystkie z nich obsługują JavaScript, więc jeśli masz te funkcje na stronie, będzie ona dynamicznie się zmieniać, gdy ludzie będą ustawiać i zmieniać swoje odpowiedzi.

# Kod Pytanie Typ Trafność
1 numKids Ile masz dzieci? Wprowadzenie numeryczne - 2 kid1 Ile lat ma Twoje pierwsze dziecko? Wprowadzenie numeryczne numKids >= 1
3 kid2 Ile lat ma Twoje drugie dziecko dziecko? Wprowadzenie liczbowe numKids >= 2
4 kid3 Ile lat ma Twoje trzecie dziecko? Wprowadzenie liczbowe numKids >= 3
6 sumKidAges {sum(kid1.NAOK,kid2. NAOK,kid3.NAOK,kid4.NAOK)} Równanie 1
7 kidSummary Powiedziałeś, że masz {numKids}. {if(numKids==1,'dziecko','dzieci')}. {if(numKids>1,implode(' ','Suma wieku Twoich pierwszych ',min(numKids,4),' dzieci to ',sumKidAges,'.'),' ')} |1


Aby pobrać ten przykład, kliknij poniższy link: Assessments_survey_example.


Poniżej możesz znaleźć zrzuty ekranu z reprezentatywnymi pytaniami. Jak widać, składnia EM podświetla wszystkie pola, które mogą zawierać dostosowywanie. Tutaj zobaczysz przykłady trafności podświetlania składni, typu pytania Równanie i podstawień w pytaniu. Możesz także użyć podstawień w ramach Pomocy, wyświetlania nagłówka grupy, wiadomości powitalnej i wiadomości końcowej.

W następnym przykładzie, ponieważ trafność wynosi {numKids >= 2), pytanie będzie widoczne tylko wtedy, gdy respondent zgłosi, że ma co najmniej dwójkę dzieci.



Poniżej możesz zauważyć, że do każdej zmiennej dołączony jest przyrostek .NAOK. Dzieje się tak ze względu na sposób, w jaki EM obsługuje znaczenie kaskadowe. Jeśli nie masz .NAOK, suma zostanie obliczona tylko wtedy, gdy dana osoba oświadczyła, że ma 4 dzieci (np. jeśli wszystkie zmienne są istotne). Użycie .NAOK oznacza, że chcemy obliczyć sumę, nawet jeśli wszystkie lub niektóre zmienne są nieistotne (np. „Nie dotyczy” (NA) jest w porządku (OK)).

Jednak atrybut .NAOK wpływa tylko na to, czy zmienne są przekazywane do EM. Jeśli respondentka początkowo twierdzi, że ma 3 dzieci i podaje wiek każdego z nich, potem zmienia zdanie i twierdzi, że ma 2, to nie chcemy widzieć sumy 3 wprowadzonych wartości - ponieważ trzecie dziecko „nie dotyczy” w naszym przypadku już:



Każde oddzielne wyrażenie jest oznaczone kolorem i brązowym tłem. Jak widać, są tu trzy osobne wyrażenia. Ostatnia zawiera komunikat, który wyświetla się warunkowo tylko wtedy, gdy dana osoba ma więcej niż jedno dziecko.



Oto zrzuty ekranu przedstawiające ankietę w akcji.

Kiedy po raz pierwszy odwiedzasz tę stronę, widzisz to. Zauważ, że jest napisane „Masz 0 dzieci” zamiast „Masz 0 dzieci”.



Jeśli zmienię wartość liczby dzieci na 1, wyświetlacz natychmiast zmieni się na następujący, mimo że znajduje się na tej samej stronie:



Teraz zauważ, że gramatyka jest poprawna: „Masz 1 „dziecko””.

Teraz zmieniam wartość liczby dzieci na 3, a wyświetlacz natychmiast się na nią zmienia.

Zwróć uwagę, że na dole widzisz komunikat warunkowy: „Suma wieku twoich pierwszych 3 dzieci wynosi 0”.



Teraz wprowadzę wiek moich wyimaginowanych dzieci i otrzymuję następujący ekran podsumowujący ich wiek:



Ponownie, wynik i wyświetlacz aktualizują się natychmiast po wprowadzeniu wartości, więc możesz użyć tego do wyświetlenia bieżącej sumy Wyniku Oceny.


Teraz zmieniam wartość liczby dzieci na 2. Wyświetlacz zmienił się na następujący:



Zauważ, że chociaż dla trzeciego dziecka wprowadziłem wartość 5,5, w raporcie sumowane są teraz tylko wartości moich pierwszych dwojga dzieci.

Powodem tego jest to, że trzecia wartość jest teraz nieistotna, a nieistotne wartości są aktywnie ignorowane przez EM.

Gdybym miał ponownie zmienić liczbę dzieci na 3, ponownie zobaczyłbym wprowadzoną wartość 5,5. Dzięki temu nie tracę żadnych informacji, które wprowadzam na stronie.

Jeśli jednak przejdę do następnej lub poprzedniej strony, wszystkie nieistotne wartości zostaną usunięte w sesji i bazie danych. Tak więc, jeśli miałbym utrzymać wartość na poziomie 2, przejść do następnej strony, a następnie wrócić i stwierdzić, że tak naprawdę mam 3 dzieci, nie widziałbym już wieku 5,5.


Wprowadź dane i zobacz dynamicznie zmieniający się raport tego, co zostało wprowadzone na tej samej stronie

Ten przykład przedstawia proces krawiectwa w LimeSurvey.

Aby pobrać ten przykład, kliknij następujący link: Przykład ankiety dotyczącej zmian dynamicznych.

Oto jak strona wygląda na początku. Widzisz tylko pytanie, w jakim mieście mieszkasz:



Gdy zaczniesz wpisywać odpowiedź, rozpoczyna się również proces dostosowywania:


W miarę wpisywania odpowiedzi tabela u dołu strony jest aktualizowana i wyświetla kody odpowiedzi oraz wartości Twoich odpowiedzi.


Typowe przykłady debugowania

Zagnieżdżone instrukcje if() (logika warunkowa)

EM obsługuje funkcję „if(test,do_if_true,do_if_false)”, dzięki czemu można wykonywać logikę warunkową lub dostosowywanie. Tę funkcję można zagnieżdżać, aby uzyskać odpowiednik „if { } else if { } else { }”. EM poinformuje Cię, jeśli nawiasy nie są zrównoważone (np. brakuje Ci prawego nawiasu zamykającego) lub jeśli masz dodatkowe prawe nawiasy. Powinieneś spróbować policzyć nawiasy podczas tworzenia długo zagnieżdżonych instrukcji if, zapisać je, sprawdzić błędy składniowe i naprawić je, jeśli jakieś zostaną znalezione. Sprawdźmy wspólnie poniższy przykład.

Dostęp do poniższej grupy pytań można uzyskać tutaj: Ankieta krawiecka przykład.lsg


Po pierwsze, gdy nic nie zostało wprowadzone, zobaczysz po prostu „Witam”.



Jeśli wpiszesz nazwę, wyświetli się komunikat „Witam {imię}”.



Jeśli podasz wiek, otrzymasz wiadomość dostosowaną do tego, czy jesteś dzieckiem w wieku przedszkolnym, czy nie:



W wieku szkolnym, nastolatkiem lub dorosłym. Oto nastolatka, która chce zachować anonimowość:



Oto plik logiczny grupy. Jak widać w pytaniu „jeśli”, istnieją zagnieżdżone stwierdzenia if oparte na wieku osoby.



Kiedy pierwotnie edytujesz to pytanie, prawdopodobnie w pewnym momencie będziesz mieć niewłaściwą liczbę nawiasów. Oto, co się stanie, jeśli będzie ich za mało:



Jeśli najedziesz kursorem na słowo „jeśli” otoczone czerwoną ramką, pojawi się informacja „Niezrównoważone nawiasy”. W tym przypadku po „już dorosły!” powinny znajdować się cztery nawiasy zamykające, a są ich tylko trzy.

Jeśli natomiast masz dodatkowy prawy nawias, zostanie on otoczony czerwoną ramką, jak poniżej:



Kiedy faktycznie edytujesz pytanie, pytanie wygląda następująco: