ExpressionScript minta felmérések
From LimeSurvey Manual
Bevezetés
Az ExpressionScript használatának elsajátításának legjobb módja a működő példákkal való játék, és az igényeinek megfelelő módosítása.
Az alábbiakban mintafelméréseket találhat annak bemutatására (és tesztelésére), hogy az EM hogyan használható fel a felmérés javítására. Ezek a felmérések a disztribúció /docs/demosurveys mappájában találhatók.
Relevancia, szabás és egyenletek
Áttekintés
A következő példa az egyes válaszadók BMI-jét (Body Mass Index) számítja ki. Tekintse meg alább a példában bemutatott funkciókat.
EM jellemzők bemutatva
- Relevancia - erőteljes feltételes logika támogatása;
- Piping / Tailoring - lehetőséget kínál a válaszok és a kérdések metaadatainak átvezetésére vagy testreszabására;
- Dinamikus szabás - vegye figyelembe, hogy a jelentések módosulnak az oldalon, ahogy válaszol a kérdésekre.
- Mikroszabás - feltételes testreszabás mondatokon belül és jelentések if() utasításokat használva
- Egyenletek - egy új kérdéstípus, amely lehetővé teszi a számítások elvégzését és az eredmények tárolását az adatbázisban, még akkor is, ha a számítás rejtett
- Feltételes érvényesítés - érvényesítés a kritériumok, mint például a minimálisan megengedett érték, lehetnek feltételesek – például egyenletek alapján.
Képernyőképek
Ez a példa a testtömeg-indexet számítja ki, amely az Ön súlyának és magasságának kiszámítása annak meghatározására, hogy alulsúlyos, normál súlyú, túlsúlyos vagy elhízott-e. Vegye figyelembe, hogy kezdetben csak a négy kötelező kérdést látja:
Miután megadta adatait (és kiválaszthatja, hogy metrikus vagy nem metrikus mértékegységeket használ-e), megjelenik egy személyre szabott jelentés, amely összefoglalja a beírt adatokat, és közli a súlyállapotát:
Íme egy másik példa, amely nem metrikus egységekkel mutatja be, hogyan változik dinamikusan az eredmény:
Belső szinten rejtett Egyenlet típusú kérdések találhatók, amelyek az adatokat metrikává alakítják (ha szükséges), tárolva a metrika magasságát, súlyát, BMI-jét és súlyállapotát az adatbázisban anélkül, hogy egyéni JavaScriptre lenne szükség.
A következő példakészletben láthatja, hogyan használhat matematikai és egyéb függvényeket a személyre szabott jelentésekben. Így néz ki az oldal, mielőtt bármilyen adatot megadna. Feltételes logika van az üres cellák megjelenítésére, ha nincs (vagy nem numerikus) adat adva meg, ahelyett, hogy a „NaN” vagy az „Osztás nullával” lenne.
A számok bevitelekor az oldali jelentés megváltozik, és megjeleníti az éppen végrehajtott számítást és annak eredményét.
Ebben a mintafelmérésben sok más példa is található. Az alábbi képernyőképen például a Dinamikus relevancia oldal több tucat módja közül az egyik látható. Amint a súgó szövege megjegyzi, próbáljon ki különböző korosztályokat, és különösen logikátlan válaszkombinációkat, hogy lássa az alul generált mulatságos üzeneteket. Azt is vegye figyelembe, hogy ha azt mondja, hogy egynél több gyermeke van, akkor az üzenet azt fogja mondani, hogy „Remélem, szívesen játszik X gyermekével”, nem pedig azt, hogy „Remélem, élvezi a gyermekével való játékot”. Ez megmutatja, hogyan lehet egyszerűen mikro-testreszabni a mondatokat, hogy azok megfeleljenek az alanyok nemének és/vagy számának. Könnyedén konjugálhat igéket, és elutasíthatja a főneveket nem és szám alapján.
Letöltés
A felmérés mintájának eléréséhez kattintson a következő linkre: LS3_em_tailoring.zip.
Mintaszámlálás
Áttekintés
Ez egy népszámlálási példa, amely azt kérdezi, hány ember van a háztartásában.
Bemutatja, hogy a csoportszintű relevancia hogyan teheti könnyebbé a kérdések „hurokának” megvalósítását. Az 1. személy csoportjának létrehozása után exportáltam a csoportot. Mivel az SGQA kód helyett a qcode változóneveket, például a p1_name változót használtam, egy szövegszerkesztővel gyorsan szerkeszthettem és többször is újraimportálhattam a csoportot (pl. kb. 10 másodpercbe telt minden ismétlődő csoport szerkesztése és újraimportálása, biztosítva ezzel hogy minden változónak egyedi változóneve van, és a csoportszintű logika helyes volt).
A Kérdés másolása funkciót is használhatja, de ez nem lesz olyan gyors, mint a fent javasolt lehetőség.
Ez azt is megmutatja, hogyan akadályozhatja meg, hogy a Kész üzenet megjelenjen mindaddig, amíg a felmérés valóban be nem fejeződik (pl. amikor az összes szükséges csoport elkészült).
EM jellemzők bemutatva
- Csoportszintű relevancia - A követési csoportok (1-5. személy) csak a megadott számú élettársi lakosig jelennek meg;
- Szabásság - A zárójelentés összefoglalja az egyes élettársak demográfiai adatai;
- Progresszív kérdésmegjelenítés - Akár csoportos, akár all-in-one módban, a következő kérdések csak akkor jelennek meg, amint megválaszolják az előzőeket.
Képernyőképek
A felmérés egy személyre szabott jelentést készít, amely bemutatja a meghatározott számú élettársi kapcsolatban élők demográfiai adatait:
Ha átvált az időközönkénti kérdés módra, látni fogja, hogy az index személyre szabja a kérdéseket. Mivel a felhasználó azt mondta, hogy az illető nő, megkérdezi, hogy "Mi a neve". És mivel azt válaszoltuk, hogy "Mária", a következő kérdés az, hogy "Hány éves Mária"?
Letöltés
A felmérés mintájának letöltéséhez kattintson ide: LS3_group_relevance.zip.
Lépcsőzetes tömbszűrők
Áttekintés
Ez a felmérés a Joy Lane Research, LLC jóvoltából készült felmérésen alapul.
Képernyőképek
A következőkben vegye figyelembe, hogy:
- Q02 csak a Q01-ben (tömbszűrő használatával) ellenőrzött termékek halmazát mutatja
- Q02 az "Egyéb termék" kifejezést is mutatja, a Q01-ben az "Egyéb elektronikus" mezőbe beírt szöveg
- Q04 csak azokat a Q02-ből származó termékeket mutatja, amelyeket ellenőriztek (tehát a tömbszűrők kaszkádolnak)
- Q05 csak azokat a Q02-ből származó termékeket jeleníti meg, amelyeket nem ellenőriztek a Q02-ben (egy lépcsőzetes array_filter_exclude használatával)
Letöltés
Kattintson a következő hivatkozásra a fenti példa letöltéséhez: LS2_cascading_array_filter felmérési példa.
Csőszerelés/szabás az összes kérdéstípus és attribútum felhasználásával
Áttekintés
Ha nem tudja, hogyan nevezze el a változóit (SGQA vs. Qcodes), nincs egyedül. Bár a fő dokumentáció leírja a Qcode-változónevek összeállítását, semmi sem jobb, ha egy működő demóban látjuk. Ez a felmérés bemutatja, hogyan érheti el a kérdésattribútumokat és a válaszokat az ExpressionScript használatával.
Tartalom
- Példák minden kérdéstípusra
- Minden olyan kérdéstípus szerepel, amely használhatja az "egyéb" kifejezést, így láthatja, hogy ez hogyan befolyásolja a változók elnevezését
- Alapértelmezett értékek minden olyan kérdéstípushoz, amely elfogadja az alapértelmezett értékeket
- Testreszabás - Oldalon belüli és azon kívüli jelentések, amelyek mind a 16 elérhető EM pontjelölés utótagot tartalmazzák.
- Ezek a jelentések az összes aktuálisan bevitt adatot mutatják (így megmutatják, hogyan hozhat létre saját nyomtatható jelentéseket a felhasználók számára a nyomtatott- válaszok képernyő)
- Minden változó megfelelő Qcode és SGQA elnevezése
Képernyőképek
Ez egy hatalmas felmérés, ezért úgy döntöttünk, hogy nem szerepeltetünk képernyőképeket. Ehelyett kérjük, töltse le és játsszon vele.
Letöltés
A felmérés letöltéséhez kattintson a következő linkre: LS3_EM_question_attributes.lss
Hagyományos érvényesítés, újragondolva
Áttekintés
Ez bemutatja az összes érvényesítési típust, amely kifejezéseket használ, és azt, hogy ezek hogyan hatnak az egyes, az érvényesítést támogató kérdéstípusokra. Sok esetben az érvényesítési tippek rejtve kezdődnek, és csak akkor jelennek meg, ha egy kérdés nem felel meg az érvényesítési feltételeknek (így eltűnnek, ha a kérdés megfelel az érvényesítési feltételeknek).
Érvényesítési típusok bemutatva
- min_num_value_n - válasz minimális értéke
- max_num_value_n - válasz max. értéke
- min_answers szükséges válaszok száma
- max_answers a válaszok maximális száma megengedett
- multiflexible_min - egy válaszhoz megengedett minimális érték (multiflexibilis számok kérdéstípusa esetén)
- multiflexible_max - a válasz maximális megengedett értéke (multiflexi számok kérdéstípusához)
- min_num_value - a kérdésre adott válaszok minimális megengedett összege
- max_num_value - a kérdésre adott válaszok maximális megengedett összege
- equals_num_value - a kérdésre adott válaszok összegének meg kell egyeznie ezzel az értékkel
- validation - ez a reguláris kifejezés érvényesítése a kérdéshez - alkalmazható az egyes cellákra
Képernyőképek
Az új CSS-stílusok használatával minden ellenőrzési típus külön tippet mutat. Ha megjelennek, a hide_tip opcióval elrejthetők. Az alapértelmezett beállítás piros betűtípussal jeleníti meg őket, ha a kérdés nem felel meg az érvényesítési feltételeknek, és zölden, ha megfelel ezeknek:
A felhasználó nem küldhet be ellenőrzési hibákat tartalmazó oldalt. Azonnal figyelmeztetést kap, ha rossz információt adott meg:
Az érvényesítés alkalmazható egy tömb egyes celláira, például ebben a példában, ahol a reguláris kifejezés érvényesítése biztosítja, hogy minden bejegyzés megfelelően formázott egyesült államokbeli telefonszám legyen, beleértve a körzetszámot is.
Letöltés
A fenti példa letöltéséhez kattintson a következő hivatkozásra: LS3_Validation_tests.zip.
Érvényesítési egyenletek
Áttekintés
Néha olyan egyéni érvényesítésre van szükség, amely nem érhető el a hagyományos min/max feltételekkel. Ehhez az em_validation_q és az em_validation_sq opciókat kell használnia, amelyek segítségével összetett érvényesítési egyenleteket hozhat létre kérdés, illetve részkérdés szintjén.
EM jellemzők bemutatva
- em_validation_q - ez egy egyenlet, amely meghatározza, hogy az egész kérdés érvényes-e
- em_validation_q_tip - ez az üzenet, amely megmutatja, ha a kérdés nem felel meg az em_validation_q kritériumoknak
- em_validation_sq - ez az egyenlet, amely meghatározza, hogy az egyes részkérdések (tömbcellák) érvényesek-e! az alkérdések közül érvénytelen.
Általában az em_validation_sq használatakor, ha valamelyik cella érvénytelen, az adott cella háttérszíne pirosra vált, jelezve, hogy hiba történt.
Képernyőképek
Ez a kérdés biztosítja, hogy gyermekei életkorát csökkenő sorrendben adja meg az alábbi érvényesítési egyenlet alkalmazásával:
q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4
Az alábbi példában az érvényesítés biztosítja, hogy egy adott sorban legfeljebb 3 kérdésre válaszoljon az érvényesítési egyenlet alkalmazásával:
(sum(Teszt_A_1, Teszt_A_2, Teszt_A_3, Teszt_A_4, Teszt_A_5) <= 3) && (sum(Teszt_B_1, Teszt_B_2, Teszt_B_3, Teszt_B_4, Teszt_B_5) <= 3) && (összeg (Teszt_C_2,_ teszt_4, Teszt_4) = 3)
Ezt a következőképpen is megírhatja, a LimeSurvey futás közben automatikusan konvertálja a fent felsorolt kifejezésre.
(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)
Letöltés
A fenti példákban használt felmérési minta letöltéséhez kattintson a következő linkre: ls2_test_em_sq_validation.lss.
Részkérdés relevanciája
Áttekintés
Ez megmutatja, hogy az array_filter és az érvényesítési feltételek hogyan hatnak egymásra. Az összegekre vonatkozó érvényesítéseknél csak a releváns (látható) értékeket veszik figyelembe.
EM jellemzők bemutatva
Az alapkérdésekben megválaszolt kérdések dinamikus jelentését is mutatja.
Képernyőképek
A látható sorok számának módosítása dinamikusan módosítja az összeget. Egy részkérdés irrelevánsként való megjelölése nem törli az értékét. Inkább, ha irreleváns, értékei nem járulnak hozzá egyetlen egyenlethez sem.
Jegyezze meg, mi történik, ha bejelöljük az "Ötödik alkérdést" az első kérdésnél: 'Melyik sorok jelenjenek meg alatta. Vegye figyelembe, hogy a második „Írjon be néhány számot” kérdés összege most 5. Annak ellenére, hogy az 5. részkérdés értéke továbbra is 14 (pl. ha törli az ötödik részkérdés bejelölését, ismét 14-et fog látni). , ez az érték nem járul hozzá az összeghez, mivel jelenleg irreleváns. Minden irreleváns adat törlődik (NULL az adatbázisban) a beküldéskor, de elérhető marad az oldalon, ha a felhasználók meg akarják változtatni a véleményüket a válaszokkal kapcsolatban.
Letöltés
Példánk letöltéséhez kattintson ide: ls2_subquestion_relevance.lss.
Vessző használata radixelválasztóként (tizedespont)
Áttekintés
Az ExpressionScript biztosítja, hogy csak érvényes számok írhatók be a numerikus mezőkbe. Ha érvénytelen számot adsz meg, figyelmeztetést kapsz, hogy valami nem stimmel (pl. a gyümölcsös téma esetében az egész kérdés "pirosra vált").
Ne feledje, hogy a numerikus értékeket a rendszer mindig pontra konvertálja a gyökér elválasztóként az adatbázison belül. Ily módon a statisztikai elemzések megfelelően működnek.
A radixelválasztó megváltoztatásához nyissa meg a Settings fül alatti Szöveg elemek opciókat, és keresse meg a tizedesjel funkciót.
Kérdéstípusok Radix Separator használatával
- Numerikus bevitel [ N]
- Több numerikus bevitel [ K]
- Tömb (számok) [ :]
- Tömb (szövegek) [ ;], a numbers_only attribútum használatakor
- Lista (rádió) [ L], a other_numbers_only attribútum használatakor
- Rövid szabad szöveg [ S], a numbers_only attribútum használatakor
- Több rövid szöveg [ Q], a numbers_only attribútum használatakor
- Több választási lehetőség [ M], ha a other_numbers_only attribútumot használjuk
- Több választási lehetőség megjegyzésekkel [ P], a other_numbers_only attribútum használatakor
Képernyőképek
Az alábbi képernyőképeken megjegyezheti, hogy a vessző használható radixelválasztóként.
Letöltés
A fenti példa letöltéséhez kattintson a következő hivatkozásra: ls2_comma_as_radix_separator.lss.
Véletlenszerűsítési csoportok
Áttekintés
Ez a felmérés bemutatja, hogyan kell használni a random_group attribútumot.
Ha ezt az attribútumot használja, minden alkalommal, amikor elindítja a felmérést, a kérdések sorrendje véletlenszerű lesz. A felmérés elindítása után azonban a véletlenszerűsítési sorrend rögzített marad, még akkor is, ha nyelvet vált.
Képernyőképek
Nézzük meg együtt az alábbi példát. Az első véletlenszerű kérdés az oldalon a Q1 , Q4 vagy Q7 lesz. A második véletlenszerű kérdés az oldalon a Q2, Q5 vagy Q8 lesz.
Itt van a véletlenszerű besorolás, amely az első alkalommal generált felmérést.
A felmérés második tesztelésekor más randomizációt generáltam.
De amikor áttértem a franciára (anélkül, hogy újraindítottam volna a felmérést), a randomizációs sorrend változatlan maradt.
Letöltés
A fenti példa letöltéséhez kattintson a következő linkre: Randomization_Group_Test.lss
Véletlenszerűen Tegyen fel egy kérdést Csoportonként
Áttekintés
Ez a felmérés bemutatja, hogyan konfigurálhat egy felmérést úgy, hogy csoportonként véletlenszerűen jelenjen meg egy kérdés. Ebben 5 csoport van, egyenként 6 kérdésből. Kezdetben a 0-s csoportban öt rejtett egyenletkérdés, az úgynevezett ask1-ask5 van kitöltve. Mindegyiknek a {floor(rand(1,6.9999))} értéke van a kérdés szövegmezőjében, ami azt jelenti, hogy az ask1-ask5 változók mindegyikének értéke 1 és 6 között lesz. Ezután a csoport minden kérdéséhez tartozik egy relevanciaegyenlet, mint például az „ask1==N”, ahol N a csoport N-edik kérdése (tehát az 1. csoport harmadik kérdésének relevanciaegyenlete „kérdez1==3”).
Ez a felmérés egyformán jól működik egyszerre, csoportonként és kérdésenként. Mivel a véletlenszerűsítés az első csoportban van beállítva, és ez a csoport gyakorlatilag el van rejtve (mivel az összes kérdezz1-kérdezz5 kérdés rejtett), a véletlenszerűsítés változatlan marad az alany esetében; de minden egyes alanynak külön randomizációja lesz.
Tulajdonságok bemutatva
- Egyenlet kérdés típusa
- Véletlenszerű függvények
- Feltételes (ha) függvény
Képernyőképek
Ez a Group0, amely a Egyenlet kérdéstípusa segítségével választ ki véletlenszerű értékeket 1-től 6-ig minden csoporthoz (kivéve az utolsó csoportot, amelyben csak 4 kérdés van). Vegye figyelembe, hogy az "if()" függvény először ellenőrzi, hogy az ask1 már be van-e állítva, és ha igen, akkor ezt az értéket használja. Ha az érték nincs beállítva, akkor véletlenszerű értéket használ az ask1 értékének beállításához.
Ez a csoport megmutatja, hogy a Group0 változója (ask4) hogyan használható annak szabályozására, hogy melyik kérdés legyen látható a negyedik csoporton belül.
Letöltés
A fenti felmérési példa letöltéséhez kattintson ide: Véletlenszerű kérdések egy csoportos felmérés példáján belül.
Véletlenszerűen tegyél fel egy meghatározott számú kérdést egy csoportban (a kérdések egy részhalmaza)
Áttekintés
Ez a felmérés bemutatja, hogyan lehet kérdéseket véletlenszerűen feltenni egy csoportban. Például mutasson meg 5 véletlenszerű kérdést a csoporton belül található 10 kérdésből.
A felmérés egy csoportból áll, amely 10 kérdést tartalmaz. Minden kérdéshez ugyanaz a randomizációs csoport neve van hozzárendelve. Ennek eredményeként az oldal betöltésekor véletlenszerű sorrendben jelennek meg. Minden kérdés kap egy relevanciaegyenletet, amely szerint a csoport összes többi kérdésének "relevanceStatus" összege kisebb, mint a megjeleníteni kívánt kérdések száma. Mivel az relevanceStatus hozzá van rendelve a kérdések megjelenítésekor, ez gyakorlatilag összesíti az előző kérdések számát.
Tehát a 10-ből 5 példánkban a Q1 egyenlete a következő lenne:
sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT5
A második negyedévben ez lenne:
sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT5
Stb...
Tulajdonságok bemutatva
Letöltés
A fenti példa letöltéséhez kattintson a következő linkre: Véletlenszerű 5/10 felmérési példa.
A felhasználó által megadott terméklista értékelése
Áttekintés
Az alábbi példa bemutatja, hogyan kérheti meg a felhasználókat, hogy sorolják fel azokat a termékeket, amelyek érdeklik őket, majd kérheti, hogy értékeljék azokat.
ES jellemzők bemutatva
- Válaszok szabása - a termékek értékelése során a címkék az előző feleletválasztós kérdés megjegyzésmezőjéből származnak
- Mérlegek szabása - sok speciális kérdés opció, például skálacímek is testre szabott legyen.
Képernyőképek
Ez a kép azt mutatja, hogy mivel csak az 1., 3. és 5. terméket választották ki, csak ez a 3 jelenik meg (a array_filter attribútum használatával). Sőt, a második kérdés sorcímkéi vagy a termékszámok (ha a megjegyzés rovatba semmit nem írnak be), vagy a megjegyzés mezők tartalma.
Ez a kép azt mutatja, hogyan vannak megadva a személyre szabott válaszok:
Itt található az adott kérdéshez tartozó logikai fájl megjelenítése, amely lehetővé teszi számunkra, hogy ellenőrizzük, hogy a feltételes logika a kívánt módon működik-e (pl. hogy lássuk, vannak-e szintaktikai hibák):
A következő képen egy csoport látható, amelyben megad egy 5 pontos értékelési skálát (1-5. opciók), a skála címét és az értékelni kívánt termékeket. Az utolsó kérdés azt mutatja, hogy a tömbkérdés minden része testre szabható:
A következő kép az utolsó kérdés logikai fájlnézetét mutatja. Amint láthatja, az alkérdések, válaszok és skálafejlécek személyre szabhatók.
Letöltés
A fenti felmérési példa letöltéséhez kattintson a következő linkre: A felhasználók által megadott terméklista felmérési példája.