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.

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

Do pole Skript pak zadejte samotný skript / vzorec.

Editace

Možnosti 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.

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 👉 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í

Abs

Vrátí absolutní hodnotu zadaného čísla.

Abs(-1)

Acos

Vrátí úhel, jehož kosinus je zadané číslo.

Acos(1)

Asin

Vrátí úhel, jehož sinus je zadané číslo.

Asin(0)

Atan

Vrátí úhel, jehož tangens je zadané číslo.

Atan(0)

Ceiling

Vrátí nejmenší celé číslo větší nebo rovné zadanému číslu.

Ceiling(1.5)

Cos

Vrátí kosinus zadaného úhlu.

Cos(0)

Exp

Vrátí e umocněné na hodnotu argumentu.

Exp(0)

Floor

Vrátí největší celé číslo menší nebo rovné zadanému číslu.

Floor(1.5)

IEEERemainder

Vrátí zbytek vyplývající z dělení zadaného čísla na jiné zadané číslo.

IEEERemainder(3, 2)

Log

Vrátí logaritmus zadaného čísla.

Log(1, 10)

Log10

Vrátí logaritmus zadaného čísla o základu 10.

Log10(1)

Max

Vrátí větší ze dvou zadaných čísel.

Max(1, 2)

Min

Vrátí menší ze dvou čísel.

Min(1, 2)

Pow

Vrátí mocninu specifikovaného čísla.

Pow(3, 2)

Round

Zaokrouhlí hodnotu na nejbližší celé číslo nebo zadaný počet desetinných míst.

Round(3.222, 2)

Sign

Vrátí hodnotu označující znaménko čísla.

Sign(-10)

Sin

Vrátí sinus zadaného úhlu.

Sin(0)

Sqrt

Vrátí druhou odmocninu zadaného čísla.

Sqrt(4)

Tan

Vrátí tangens zadaného úhlu.

Tan(0)

Truncate

Vypočítá integrální část čísla.

Truncate(1.7)

in

Vrátí, zda je prvek v sadě hodnot.

in(1 + 1, 1, 2, 3)

if

Vrátí hodnotu na základě podmínky.

if(3 % 2 = 1, 'hodnota je true', 'hodnota je false')

Dotazníkové funkce

FunkcePopisPoužití

GetDistributionChannelName()

Vrátí název distribučního kanálu, ze kterého je přistoupeno do dotazníku.

GetDistributionChannelName()

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)

GetContactEmail

Vrátí e-mailovou adresu kontaktu z e-mailové kampaně.

GetContactEmail()

GetContactPhone

Vrátí telefon kontaktu e-mailové kampaně.

GetContactPhone()

GetContactFirstName

Vrátí jméno kontaktu e-mailové kampaně.

GetContactFirstName()

GetContactLastName

Vrátí příjmení kontaktu e-mailové kampaně.

GetContactLastName()

GetContactSalutation

Vrátí oslovení kontaktu e-mailové kampaně.

GetContactSalutation()

GetContactCompany

Vrátí firmu kontaktu e-mailové kampaně.

GetContactCompany()

GetContactJob

Vrátí pracovní zařazení kontaktu e-mailové kampaně.

GetContactJob()

GetContactMobile

Vrá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íku

GetCurrentSessionId()

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.

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

Last updated