x

Mga pangunahing kabanata

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Gabay sa mabilis na pagsisimula - LimeSurvey 3.0+
  3. Pag-install - LimeSurvey CE
  4. Paano magdisenyo ng magandang survey (gabay)
  5. Pagsisimula
  6. Pangangasiwa sa LimeSurvey
  7. Mga Survey - panimula
  8. Mga setting ng survey
  9. Menu ng survey
  10. Istraktura ng survey
  11. Mga tanong - panimula
  12. Mga pangkat ng tanong - panimula
  13. Mga survey - pamamahala
  14. Mga opsyon ng toolbar ng survey
  15. Multilingual na survey
  16. ExpressionScript Engine - Gabay sa mabilis na pagsisimula
  17. Mga hindi nakategoryang tampok at advanced na tampok
  18. Pangkalahatang FAQ
  19. Pag-troubleshoot
  20. Mga Workaround
  21. Lisensya
  22. Log ng pagbabago ng bersyon
  23. Plugins
 Actions

Suriin ang logic ng survey - Advanced

From LimeSurvey Manual

Maaaring isinalin ng makina ang pahinang ito at maaaring may mga mali. Ipakita ang orihinal sa Ingles · Pagbutihin ang salin na ito
This page is a translated version of the page Check survey logic - Advanced and the translation is 100% complete.


Pangkalahatan

Isang mahalagang opsyon na tumutulong sa iyong gumawa at madaling mapanatili ang mga komplikadong survey ay ang Check Survey Logic.

Sa buong proseso ng pagbuo at pagsubok ng survey, at bago ito i-activate, napakahalagang i-validate ang logic ng survey. Lalo na itong totoo kapag gumagamit ka ng mga komplikadong relevance, tailoring, at validation equation - kailangan mong tiyakin na walang masisira kapag pinatakbo ang survey.

Hinahayaan ka ng feature na ito na mabilis na i-validate ang kawastuhan ng iyong survey, pangkat, at tanong. Maa-access ito mula sa mga opsyon ng top bar menu na nasa ilalim ng mga setting na may kaugnayan sa survey. Makikita ito sa menu na Mga Tool:



Gaya ng makikita sa itaas, maaari mong patakbuhin ang opsyong ito nang apat na beses, para sa bawat wikang ginagamit sa isang survey.

Paglalarawan

Ipinapakita ng opsyong Check Survey Logic ang lahat ng iyong tinukoy para sa bawat tanong at pangkat (hal., pangalan, teksto, tulong, mga kondisyon/relevance, mga panuntunan sa pag-validate, mga default, mga subquestion, mga sagot) sa isang maginhawang anyong talahanayan. Hina-highlight nito ang mga error, at hinahayaan kang i-click ang mga ID ng tanong at pangkat (o mga variable na ginamit sa loob ng mga equation) upang magbukas ng mga bagong tab ng browser para i-edit ang mga tanong o pangkat na iyon. Dahil dito, madaling i-edit ang anumang error at i-refresh ang pahina ng logic check para kumpirmahin ang kawastuhan ng survey bago ito i-activate.

Idinisenyo rin ang display na ito upang madaling basahin ng mga mananaliksik at sponsor ng pag-aaral, upang ma-validate nila ang kawastuhan ng disenyo at logic ng survey. Ina-update ng pagsuri sa logic ng survey ang cache para sa lahat ng expression na ginamit sa isang aktibong survey.

Kasama rito ang mga sumusunod na column:

  • # - ipinapakita ang bilang ng pagkakasunod-sunod ng Pangkat at Tanong, simula sa 0.
  • Pangalan [ID] - ipinapakita ang code ng tanong para sa pangkat/tanong/subquestion. Magagamit ang mga code na ito bilang mga variable sa loob ng mga expression. Ang ID ay ang ID ng tanong (QID), o ID ng pangkat (GID). Ipinapakita rin ng field na ito ang uri ng tanong (hal., Multiple choice [M])).


Para malaman pa kung aling mga variable ang magagamit sa loob ng mga expression, basahin ang sumusunod na subseksyon ng wiki.


  • Relevance [Pag-validate] (Pangunahing saysay) - ipinapakita ang sumusunod:
    • Relevance - ang syntax-highlighted na relevance equation para sa tanong o pangkat. Kung palaging totoo ito (ipapakita sa anumang sitwasyon), ang value ay magiging 1.
    • Pag-validate - awtomatikong bumubuo ang ExpressionScript ng validation equation batay sa mga napiling attribute ng tanong (hal., min/max na bilang ng sagot, min/max/equals na halaga ng kabuuan, min/max na indibidwal na halaga o validation gamit ang regular expression). Ipinapakita ng seksyong ito ang nabuong validation equation para matukoy mo kung may mga error (tulad ng mga undefined variable).
      • Ipinapakita ng validation sa antas ng tanong ang equation na kailangan para i-verify ang mga attribute ng tanong na inilarawan sa itaas
      • Ipinapakita ng validation sa antas ng subquestion ang equation na kailangan para ipatupad ang array_filter, array_filter_exclude, at exclusive_option
    • Default - kung may default na value ang tanong, ipinapakita ito rito, syntax-highlighted (dahil maaaring expression ang default).
  • Text [Tulong] (Tip) - ipinapakita ang sumusunod:
    • Teksto - ang teksto ng pangkat, tanong, subquestion, o sagot. Syntax-highlighted ito upang ipakita ang anumang naka-embed na tailoring, kaya mabe-verify mo na naideklara mo ang lahat ng variable na plano mong gamitin sa tailoring.
    • Tulong - ipinapakita nito ang text ng tulong para sa tanong, syntax-highlighted din.
    • Tip - ipinapakita nito ang internal na nabuong validation tip, batay sa mga attribute ng tanong. Ginagamit ang parehong tip na ito sa lahat ng istilo ng survey, pati na rin sa mapi-print na survey at mga screen ng paglalagay ng data.
    • Mga attribute ng tanong - ipinapakita nito ang talahanayan ng lahat ng kaugnay na attribute ng tanong na ito. Hina-highlight ang syntax ng mga attribute na maaaring equation para ma-validate mo ang kawastuhan ng mga ito.

Ang mga row ay may kulay tulad ng sumusunod:

  • Mga Pangkat - ipinapakita na may mapusyaw na kulay-abong background
  • Mga Tanong - ipinapakita na may mapusyaw na berdeng background
  • Mga Subquestion - ipinapakita na may maputlang dilaw na background
  • Mga sagot - ipinapakita na may payak na puting background

Ang mga sagot ay may karagdagang attribute sa column na Relevance:

  • Halaga - ito ang default na internal na value na ginagamit ng mga kalkulasyon. Kung gumagamit ka ng pagtatasa, ito ang magiging value ng pagtatasa. Kung hindi, ito ay kapareho ng pangalan ng sagot.


Nakalista sa loob ng Check Survey Logic (sa itaas ng talahanayan) ang paglalarawan ng survey, mga mensahe ng pagtanggap at pagtatapos, end URL, paunawa sa patakaran sa data ng survey, at label kung hindi walang laman ang mga kaukulang field nito!

Paggamit

Sa itaas ng pahina, may mensaheng buod. Kung maayos ang lahat, sasabihin nitong "Walang na-detect na syntax error sa survey na ito", o "Ang pangkat na ito" o "Ang tanong na ito", "mismo, ay walang anumang syntax error". Kung kabaligtaran naman, sasabihin nitong "May syntax error ang X tanong na kailangang itama".

Ang bawat tanong na may syntax error ay magkakaroon ng pulang kulay sa background ng pinakakaliwang column nito (i.e. #). Magpapakita rin ng babala sa ilalim ng column na Pangalan [ID] na nagsasaad ng minimum na bilang ng error ng isang tanong. Karaniwan ang mga sumusunod na error:

  • Undefined variable - kung hindi mo nadefine ang lahat ng iyong variable, o nagkamali ka sa pag-type ng array_filter (o magkakaibang set ng mga opsyon sa sagot para sa array_filter), magpapakita ng mga error ang ilan sa iyong mga tanong sa pag-validate. Ipinapakita ang mga undefined variable sa pulang teksto, na may pulang linya sa paligid.
  • Maling syntax - habang nagsisimula kang gumamit ng mga relevance equation, maaaring sobra o kulang ang mga panaklong na nagamit mo. Hina-highlight at nilalagyan ng pulang kahon ang mga ganitong problema sa syntax. Kung ilalagay mo ang mouse sa ibabaw ng anumang tekstong may pulang kahon, magpapakita ng tool-tip na naglalarawan sa error.

Mga kulay sa syntax ng ExpressScript

Ang mga kondisyon at equation ay may syntax highlighting para mas madaling maunawaan ang tinitingnan mo:

  1. Berde / Mapusyaw na asul: Isang variable na tumutukoy sa tanong na nauna sa survey
  2. Asul: Isang function
  3. Kulay-abo: Isang string expression
  4. Kayumanggi: Isang TOKEN expression (data ng kalahok)
  5. Itim: Operator

Mga dapat suriin:

  1. Lila: Isang variable na tumutukoy sa tanong na nasa hulihan ng survey. Kadalasan, error ito at kailangang suriin.
  2. Pula o pulang kahon: Isang hindi umiiral na variable o reference sa naunang tanong o isang syntax error - kadalasang kailangang suriin.


Mga Undefined Variable

Kung may ginamit na mga undefined variable, ang kaukulang pangalan ng variable ay magkakaroon ng pulang kulay at palilibutan ng pulang linya. Kung ilalagay mo ang mouse sa ibabaw ng pangalan ng variable, sasabihin nitong "undefined variable":



  Pansin : Pakitandaan na hindi pinapayagan ng LimeSurvey ang mga administrator ng survey na gumawa ng mga tanong na gumagamit ng parehong code ng tanong. Gayunpaman, maaaring magkaroon ng magkakahawig na code ng tanong sa loob ng isang survey kung mag-import ka ng pangkat ng tanong o tanong na gumagamit ng parehong code ng tanong gaya ng isa sa mga natukoy mo nang tanong. Maaari pa ring ma-import ang tanong dahil magkakaiba ang mga ID ng tanong. Gayunpaman, kung nais mong i-export ang mga resulta ng survey para mas suriin ang mga resulta ng survey (R o SPSS), mag-ingat dahil itinuturing na variable ang code ng tanong!



}}

Maling syntax

Karamihan sa mga pagkakamali kaugnay ng expression ay dahil sa maling syntax. Kadalasan kasing nakakalimutan ng mga administrator ng survey na maglagay ng curly bracket, hindi nagagamit nang tama ang mga panaklong, o mali ang paggamit nila ng mga expression:



Narito ang maraming magagandang halimbawa ng paggamit ng syntax highlighting.


Maling custom JavaScript

Ihahighlight din sa pagsusuri ng logic ng survey ang mga error sa JavaScript:


Pagpapabilis ng pag-edit at pag-validate

Lahat ng text na may syntax highlighting ay may naka-embed na tooltip, at maaari itong i-click:

  1. Mga tooltip
    • Mga function - kapag itinapat ang mouse, makikita mo ang layunin at depinisyon ng syntax ng function;
    • Mga pangalan ng variable - kapag itinapat ang mouse, makikita mo ang posisyon (grupo, pagkakasunod-sunod ng tanong), text ng tanong, at mga pinapayagang sagot para sa tanong.
  2. Mga aksyon
    • Mga pangalan ng variable - kapag kinlik ang pangalan ng variable, magbubukas ng bagong window kung saan maaari mong i-edit ang tanong. Dahil dito, madaling mag-navigate at mag-verify ng logic - ituloy lang ang pagki-click sa mga pangalan ng variable ng relevance o pamantayan ng pag-validate ng tanong para makita kung saan ito nanggaling at paano ito ginagamit.


Mga halimbawa

Ang mga sumusunod na halimbawa ay kinuha mula sa mga sample na survey ng ExpressionScript. Makikita sa page na iyon ang mga screenshot ng mga tumatakbong survey, mga paliwanag, at mga download.


Body Mass Index

Narito ang mga screenshot ng halimbawang ito.

Ito ang view ng pag-reorder ng tanong para sa kalkulasyon ng Body Mass Index. Makikita mo ang mga relevance equation para sa timbang, taas, at BMI sa ilalim ng column na Tanong:



Para sa mas magandang overview ng survey, tingnan ang page ng logic ng survey:



Magandang halimbawa rin ang survey na ito ng mga nested na if() statement para buuin ang "weightstatus".


Cascading logic

Narito ang mga screenshot ng halimbawang ito.

Ipinapakita nito ang logic ng pag-validate ng subquestion na awtomatikong nabubuo kapag ginamit mo ang array_filter at array_filter_exclude. Ipinapakita rin ng halimbawang ito kung paano mo mapapalitan ang naka-tailor na value na "Iba pa" (ang sagot para sa Q02_other ay Q01_other).



Ipinapakita ng Q05 sa halimbawang ito ang sabay na paggamit ng array_filter at array_filter_exclude sa Q01 at Q02, ayon sa pagkakasunod. Ipinapakita ng halimbawang ito ang kakayahan ng cascading array_filter. Tandaan na isa sa mga pangunahing dahilan kung bakit ipinapakita ang pamantayan ng pag-validate sa antas ng tanong at subquestion ay para matiyak na wala kang typo sa pagtukoy ng mga pangalan ng variable ng array_filter o array_filter_exclude (o kung gumagamit ka ng magkakaibang pangalan ng variable para sa listahan ng mga na-filter na subquestion). Kung may ganoong typo, lalabas na pula ang lahat ng di-wastong pangalan ng variable na nagpapahiwatig na hindi sila defined, kaya mabilis mong maaayos ang problema.



Dynamic relevance

Ipinapakita ng halimbawang ito ang dynamic cascading relevance logic para kontrolin kung makikita ang isang tanong. Maaari mong i-download ang halimbawang ito dito.

Tandaan din na ipinapakita lamang ang mga tanong kapag natugunan ang ilang pamantayan sa pag-validate. Halimbawa, kung sinabi ng isang tao na may 2 siyang anak, kailangang sagutan ng respondent ang ilang tanong (kid1 at kid2).


Relevance sa antas ng grupo

Ipinapakita ng halimbawang ito kung paano lumilitaw ang relevance sa antas ng grupo sa logic check. Narito ang mga screenshot ng halimbawang inilalarawan sa ibaba.

Tulad ng makikita ninyo, ang relevance equation sa antas ng grupo (cohabs > 1 && p1_rel != "") ay lumilitaw sa kulay-abong row ng Person 2 para sa G-2.

Mapapansin din ninyo na mandatoryo ang lahat ng tanong. Gayunpaman, kung hindi relevant ang grupo, hindi rin relevant ang lahat ng tanong nito. Dahil dito, mandatoryo lamang talaga ang mga tanong na iyon kung relevant ang grupo.

Mapapansin din ninyo na ang ilang tanong ay ipinapakita lamang kung hindi walang laman ang sagot sa nakaraang tanong. Makikita ninyo sa ibaba na kung hindi napunan ang p2_sex, hindi ipapakita ang p2_name, kahit na ito ay mandatoryong tanong. Hindi rin ipapakita ang mandatoryong tanong na p2_age kung hindi napunan ang p2_name. Ang mga tanong na ito ay maaaring ituring na "conditionally mandatory".

Bukod pa rito, tandaan na awtomatiko ring nalilikha para sa inyo ang mga mensaheng tip. Inaayos ang mga ito ayon sa saklaw ng halaga (min/max), saklaw ng halaga ng kabuuan (min/max/equals), bilang ng mga sagot (min/max), atbp. (depende sa ginamit na uri ng tanong at mga aktibong attribute). Minsan gusto ninyong i-validate ang saklaw ng sagot ngunit ayaw ninyong ipakita sa user ang mga validation tip na maaaring mukhang walang saysay. Sa ganitong mga kaso, maaari ninyong gamitin ang opsyon ng tanong na hide_tip (tulad dito, upang hindi sabihin sa user na ang edad ay dapat nasa pagitan ng 0 at 115 maliban kung susubukan nilang maglagay ng maling halaga - tingnan ang p2_age).


Kuwit bilang radix (decimal) separator

Bagama't ganap na sinusuportahan ng LimeSurvey ang paggamit ng kuwit bilang radix (decimal) separator sa run-time, kailangan pa rin ninyong gumamit ng tuldok bilang radix separator sa design-time (hal., kapag tinutukoy ang min/max na mga halaga sa mga advanced na attribute ng tanong). Ang gumaganang halimbawa ay makikita rito.

Tandaan din na ang logic ng pag-validate ay awtomatikong nalilikha para sa inyo mula sa mga naka-enable na attribute ng tanong. Maaaring mukhang nakakalito ang mga equation, ngunit hindi ninyo kailangang mag-alala tungkol sa mga ito.