Skript

Popis typu otázky Skript

Využití

Otázka typu Skript umožňuje vložit do dotazníku kód vlastního skriptu, který se zpracuje při zobrazení stránky a jeho výsledek se uloží do dat odpovědí, případně zobrazí do dotazníku.

Vložení

V dotazníku klikněte na příkaz pro přidání otázky a ve formuláři vyberte typ otázky Další a upřesněte typ Skript.

Výběr typu otázky Skript

Do pole Jméno skriptu zadejte pojmenování vkládaného skriptu.

Do pole Skript pak zadejte samotný skript / vzorec.

Editace

Pro editaci položky klikněte v editoru dotazníku na modrou ikonu tužky, která otevře editační formulář s dalšími možnostmi.

Editace otázky v editoru dotazníku

Možnosti otázky

Editace možností otázky

V záložce Možnosti můžete otázku editovat.

Zakliknutím volby Zobrazit výsledek skriptu se výsledek výpočtu skriptu zobrazí respondentovi v dotazníku.

Výpočet skriptu je proveden jen jednou, a to při prvním zobrazení strany s touto otázkou. Výsledek výpočtu je uložen jako odpověď otázky a při příštím zobrazení strany, např. při návratu respondenta zpět v dotazníku, se skript již znovu nepočítá. Volba Opakovat skript při opětovném zobrazení toto chování změní, skript je v tomto případě znovu přepočítán a nová hodnota přepíše hodnotu původní.

SPSS a jméno proměnné

V záložce SPSS můžete definovat jméno proměnné, pod kterým se data odpovědí na otázku uloží v datovém souboru .SAV při exportu dat do SPSS.

Jméno proměnné je také určeno pro použití ve funkcích skriptů. Pomocí této proměnné můžete načíst hodnotu odpovědi či odpověď programově uložit. Více v Dotazníkové funkce.

Nastavení jména proměnné u otázky

Syntax skriptu

Kód skriptu musí být zapsán vždy jako vzorec vracející hodnotu. Stejný postup se běžně používá v tabulkových kalkulátorech, jako je např. MS Excel nebo Open Office (bez úvodního znaménka =). Pokud potřebujete zapsat složitější vzorec, je nutné použít vnoření funkcí.

Příklady vzorců

1 + 10

Vzorec vrací hodnotu 11.

GetData('Q1')

Vzorec vrací hodnotu odpovědi na otázku označenou jako Q1. Jméno proměnné Q1 se nastavuje v dané otázce pod záložkou SPSS.

IF(GetData('Q1') == 1, 'A', 'B')

Vnoření funkcí – pokud byla v dotazníku v otázce Q1 vybrána odpověď s hodnotou odpovědi 1, vrací skript text A, jinak vrací text B.

Více o hodnotách odpovědí najdete zde :point_right: Hromadná editace

SetData('nps', GetUrlParameter('nps'))

Vzorec načte hodnotu URL parametru "nps" (https:/www.click4survey.cz/s4/1234/dotaznik?nps=10) a uloží ji jako odpověď k otázce označené proměnnou "nps".

Přehled operátorů

Logické

Tyto operátory mohou provést logické srovnání mezi jinými výrazy:

  • or, ||
  • and, &&
  true or false and true

Operátor and má vyšší prioritu než or, a tak ve výše uvedeném příkladu je výraz false and true vyhodnocen jako první.

Relační

  • =, ==, !=, <>
  • <, <=, >, >=
  1 < 2

Aditivní

  • +, -
  1 + 2 - 3

Multiplikativní

  • *, /, %
 1 * 2 % 3

Bitový

  • & (bitové and), | (bitové or), ^(bitové xor), << (posun vlevo), >>(posun vpravo)
  2 >> 3

Unární

  • !, not, -, ~ (bitwise not)
  not true

Primární

  • (, )
  • hodnoty
  2 * ( 3 + 2 )

Datové typy

Celočíselné

Jsou reprezentovány pomocí čísel.

123456

Jsou vyhodnoceny jako Int32.

Čísla s plovoucí desetinnou čárkou

Pomocí tečky definujte desetinnou část.

123.456
.123

Jsou vyhodnoceny jako Decimal.

Vědecký zápis

Pomocí e můžete definovat mocninu deseti (10^).

1.22e1
1e2
1e+2
1e-2
.1e-2
1e10

Jsou vyhodnoceny jako Double.

Datum a čas

Musí být uzavřeno mezi křížky.

#31/01/2008#

Jsou vyhodnoceny jako DateTime.

Logické hodnoty

Logické hodnoty mohou být buď true nebo false.

true

Textové hodnoty

Jakýkoliv znak mezi jednoduchými uvozovkami ' ' jsou vyhodnoceny jako String.

'ahoj'

Speciální znaky můžete escapovat pomocí \, ', \n, \r, \t.

Funkce

Funkce je tvořena názvem následovaným složenými závorkami, která obsahuje jako argumenty libovolnou hodnotu.

  Abs(1), nejakaFunkce(1, 'text')

Interní funkce

FunkcePopisPoužití
AbsVrátí absolutní hodnotu zadaného čísla.Abs(-1)
AcosVrátí úhel, jehož kosinus je zadané číslo.Acos(1)
AsinVrátí úhel, jehož sinus je zadané číslo.Asin(0)
AtanVrátí úhel, jehož tangens je zadané číslo.Atan(0)
CeilingVrátí nejmenší celé číslo větší nebo rovné zadanému číslu.Ceiling(1.5)
CosVrátí kosinus zadaného úhlu.Cos(0)
ExpVrátí e umocněné na hodnotu argumentu.Exp(0)
FloorVrátí největší celé číslo menší nebo rovné zadanému číslu.Floor(1.5)
IEEERemainderVrátí zbytek vyplývající z dělení zadaného čísla na jiné zadané číslo.IEEERemainder(3, 2)
LogVrátí logaritmus zadaného čísla.Log(1, 10)
Log10Vrátí logaritmus zadaného čísla o základu 10.Log10(1)
MaxVrátí větší ze dvou zadaných čísel.Max(1, 2)
MinVrátí menší ze dvou čísel.Min(1, 2)
PowVrátí mocninu specifikovaného čísla.Pow(3, 2)
RoundZaokrouhlí hodnotu na nejbližší celé číslo nebo zadaný počet desetinných míst.Round(3.222, 2)
SignVrátí hodnotu označující znaménko čísla.Sign(-10)
SinVrátí sinus zadaného úhlu.Sin(0)
SqrtVrátí druhou odmocninu zadaného čísla.Sqrt(4)
TanVrátí tangens zadaného úhlu.Tan(0)
TruncateVypočítá integrální část čísla.Truncate(1.7)
inVrátí, zda je prvek v sadě hodnot.in(1 + 1, 1, 2, 3)
ifVrátí hodnotu na základě podmínky.if(3 % 2 = 1, 'hodnota je true', 'hodnota je false')

Dotazníkové funkce

FunkcePopisPoužití
GetUrlParameter('variable')Vrátí hodnotu parametru variable z URL adresy dotazníku.GetUrlParameter('Q1')
GetUserField(n)Vrátí hodnotu n-tého uživatelského pole.GetUserField(1)
GetContactEmailVrátí e-mailovou adresu kontaktu z e-mailové kampaně.GetContactEmail()
GetContactPhoneVrátí telefon kontaktu e-mailové kampaně.GetContactPhone()
GetContactFirstNameVrátí jméno kontaktu e-mailové kampaně.GetContactFirstName()
GetContactLastNameVrátí příjmení kontaktu e-mailové kampaně.GetContactLastName()
GetContactSalutationVrátí oslovení kontaktu e-mailové kampaně.GetContactSalutation()
GetContactCompanyVrátí firmu kontaktu e-mailové kampaně.GetContactCompany()
GetContactJobVrátí pracovní zařazení kontaktu e-mailové kampaně.GetContactJob()
GetContactMobileVrátí mobil kontaktu e-mailové kampaně.GetContactMobile()
GetRandomNumber(min, max)Vrátí náhodné číslo v rozsahu hodnot min a max.GetRandomNumber(1, 10)
GetData('variable')Vrátí hodnotu odpovědi na otázku specifikovanou proměnnou variable. Funkce vrací hodnotu vždy jako text.GetData('Q1')
GetData('variable', rowNum)Vrátí hodnotu odpovědi z baterie specifikované proměnnou variable, ve sloupci s jednou možnou odpovědí, na řádku rowNum. Funkce vrací hodnotu vždy jako text.GetData('M1', 1)
GetData('variable', colNum, rowNum)Vrátí hodnotu odpovědi z baterie specifikované proměnnou variable, ve sloupci colNum s jednou možnou odpovědí, na řádku rowNum. Funkce vrací hodnotu vždy jako text.GetData('M1', 1, 1)
GetData('variable', colNum, rowNum, answerVal)Vrátí hodnotu odpovědi z baterie specifikované proměnnou variable, ve sloupci colNum s více možnými odpověďmi, u odpovědi s hodnotou answerVal, na řádku rowNum. Funkce vrací hodnotu vždy jako text.GetData('M1', 1, 1, 3)
GetRankData('variable', n)Vrátí pořadí, na jakém byla seřazena n-tá položka v otázce na seřazení položek. Dále také z otázky Výběr z možností - více odpovědí vrátí hodnotu odpovědi, pokud byla zaškrtnuta.GetRankData('R1', 1)
GetFirstRank('variable')Vrátí hodnotu první vybrané možnosti v otázce na řazení možností.GetFirstRank('R1')
GetFirstRank('variable',' text')Vrátí text první vybrané možnosti v otázce na řadění možností.GetFirstRank('R1', 'text')
GetOptionText('variable', answerVal)Vrátí text odpovědi otázky specifikované proměnnou variable a specifickou hodnotou odpovědi answerVal.GetOptionText('Q1', 2)
GetValue('variable')Vrátí hodnotu odpovědi otázky specifikované proměnnou variable v přesném datovém typu (s číselnými odpověďmi lze ve skriptech provádět matematické operace), na rozdíl od funkce GetData, která vždy vrací datový typ text.GetValue('Q3')
GetOtherValue('variable', answerVal)Vrátí textovou odpověď "Jiná" z otázky specifikované proměnnou variable a specifickou hodnotou odpovědi answerVal.GetOtherValue('Q1', 2)
GetRowOtherValue('variable', rowNum)Vrátí textovou odpověď z řádku "Jiná" z baterie specifikované proměnnou variable a řádku číslo rowNum.GetRowOtherValue('X1', 10)
GetAnswersCount('variable')Vrátí počet označených odpovědí u otázky typu Výběr z možností - více odpovědí specifikované proměnnou variable.GetAnswersCount('Q1')
IsQuotaFull(quotaid)Vrátí, zdali je kvóta specifikovaná pomocí quotaid naplněna.IsQuotaFull(1234)
GetQuotaFullness(quotaid)Vrátí počet kompletních interview ve kvótě specifikovaní pomocí quotaid.GetQuotaFullness(1234)
Choose(index, value1, value2, value3, valueN)Vrátí hodnoty value1, value2, ... v závislosti na hodnotě parametru index. Pokud je index=1, vrátí hodnotu value1, pro index=2 vrátí value2, atd.Choose(GetData('Q1'), 10, 20, 30, 1 + 1)
SetData('variable', value)Nastaví otázce specifikované proměnnou variable odpověď hodnoty value. Tuto hodnotu zároveň vrátí.SetData('Q1', 1)
Len(value)Vrátí počet znaků, které obsahuje textová hodnota value.Len(GetData('note'))
Match(value, '^RegularExpression$')Vrátí, zdali hodnota value odpovídá regulárnímu výrazu RegularExpression. Regulární výraz začíná znakem ^ a končí znakem $.Match(GetData('id'), '^\d{6}$')
CompleteInterview()Označí aktuální rozhovor za ukončenýCompleteInterview()
DisqualifyInterview()Označí aktuální rozhovor za diskvalifikovaný, respondent bude vyřazen z dotazování.DisqualifyInterview()
GetCurrentSessionId()Vrátí unikátní číslo aktuálního rozhovoru - id vyplňovaného dotazníkuGetCurrentSessionId()
InRange(value, rangeStart, rangeEnd, resultIfInRange)Testuje hodnotu value, zdali je v rozsahu od rangeStart do rangeEnd. Pokud ano, vrací hodnotu resultIfInRange. Pokud ne, vrací hodnotu NULL.InRange(GetValue('q1'), 10, 20, 1)
FirstNotNull(value1, value2, value3)Vrátí první hodnotu ze seznamu parametrů, která není rovna hodnotě NULL.FirstNotNull(InRange(GetValue('q1'), 10, 20, 1), InRange(GetValue('q1'), 20, 30, 2), InRange(GetValue('q1'), 30, 40, 3))
In(value, value1, value2, valuex)Porovnává první hodnotu value s ostatními hodnotami funkce. Pokud je hodnota ve výčtu nalezena, vrací true, jinak false. In(GetValue('q1'), 1, 2, 3)
IsMobile()Pokud je dotazník vyplňovám na mobilu, vrací true, jinak false.IsMobile()

Export dat odpovědí

Tento typ otázky je možné exportovat pro další zpracování do formátu CSV, XLSX nebo SAV. Otázka je exportována jako jeden datový sloupec.

Export dat otázky do Excelu

Tento typ otázky je dostupný v účtu PROFESSIONAL a vyšším 👉 Přehled účtů