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

Mga halimbawa ng ExpressionScript

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 ExpressionScript examples and the translation is 100% complete.
Tulungan po ninyong palawakin ang artikulong ito sa pamamagitan ng pagdagdag ng sarili ninyong mga halimbawa. Makakatulong ito sa iba na makapagsimula sa paggamit ng Expression Script.


Istruktura

Inilalarawan ng unang bahagi ng artikulo kung para saan magagamit ang mga Expression at kung saan makikita/idadagdag ang isang Expression. Ang ikalawang bahagi ay nagbibigay ng mga halimbawa kung paano gamitin ang Expression.


Mga kategorya ng Expression

Ginagamit ng LimeSurvey ang mga Expression para sa mga sumusunod na layunin:


Relevance

Layunin: Pagtatago ng mga pangkat ng tanong/mga tanong

Kinokontrol ng relevance kung ipapakita o itatago ang isang pangkat ng tanong o tanong. Kung ang resulta ng Expression ay "true" (ibig sabihin, 1), ipapakita ang elemento. Kung hindi (kung ang resulta ng Expression ay "false" (ibig sabihin, 0)), itatago ang elemento.

Uri Nagpapakita/nagtatago ng Saan makikita Screenshot
Relevance ng pangkat ng tanong pangkat ng tanong Gumawa/I-edit ang pangkat ng tanong -> "Relevance equation:"
Relevance ng tanong tanong Gumawa/I-edit ang tanong -> "Relevance equation:"
Relevance ng subquestion subquestion I-edit ang mga subquestion -> "Relevance equation:"


Pag-validate

Layunin: I-validate ang input/mga aksyon sa mga tanong/subquestion/sagot

Kinokontrol ng pag-validate kung balido o hindi ang input ng respondent sa isang tanong o aksyon. Kung ang resulta ng expression ay "true" (ibig sabihin, 1), ilalapat ang class na "good" sa elemento at sa mensahe ng pag-validate. Kung hindi, kung ang resulta ng expression ay "false" (ibig sabihin, 0)), ilalapat ang class na "error" sa elemento at sa mensahe ng pag-validate. Maaari kayong magtakda ng style para sa mga class na ito sa template.css.

Uri Nagva-validate ng Saan makikita Screenshot
Pag-validate ng tanong tanong Gumawa/I-edit ang tanong -> "Logic tab" -> "Equation sa pag-validate ng tanong"
Pag-validate ng subquestion mga subquestion Gumawa/I-edit ang tanong -> "Logic tab" -> "Equation sa pag-validate ng subquestion" ‎

Text output

Mga layunin: (Gumawa ng isang bagay at) magsulat ng ilang text

Maaaring gamitin ang isang expression upang magsulat ng text. Halimbawa, maaari kayong mag-test o mag-compute ng isang bagay at tukuyin ang output depende sa resulta ng test o computation. Magagamit din ito upang ipasok ang text ng tanong, mga sagot, mga uri ng tanong, ... ng isang tanong na ginamit bago ang Expression. Magagamit ang text output saanman may ipinapakitang text at maaari itong magbalik ng anumang uri ng resulta.

Gamit Paglalarawan
Micro tailoring Isaayos ang isang text, hal., isulat ang "Mr" o "Mrs" depende sa naunang tanong tungkol sa kasarian
Kalkulasyon Mag-compute ng isang value at isulat ito, hal., "Ang kita ng inyong pamilya ay xxx"
Reference Magpasok ng text mula sa isang elemento, hal., "Ang pangalan mo ay xxx. Ilang taon ka na?"


Pag-iimbak ng mga sagot

Mga layunin: (Gumawa ng isang bagay,) (magsulat ng ilang text) at mag-imbak ng isang bagay sa database

Magagamit ang uri ng tanong na Equation upang mag-imbak ng isang bagay sa database. Maaari kayong gumawa ng isang bagay gamit ang Expression, ipakita ang tanong na Equation (na katulad ng display ng text) at i-imbak ang resulta ng Expression sa database. Iniimbak nito ang sagot sa talahanayan ng mga response. Pagkatapos, magagamit ang resulta sa tampok na istatistika o maaari rin itong i-import sa isa sa mga format na ibinibigay ng export functionality ng LimeSurvey.

Mga halimbawa para sa mga Expression

Magpasok ng sagot mula sa nakaraang tanong

Layunin Magpasok ng sagot mula sa nakaraang tanong
Uri Reference
Halimbawa Unang tanong (code ng tanong "Q00"): Anong lungsod ang tinitirhan mo?
Ikalawang tanong (code ng tanong "Q01") Gaano ka na katagal naninirahan sa CITY?
Gagawin: Dapat gamitin ang sagot mula sa unang tanong sa halip na "CITY" sa ikalawang tanong.
Expression {QOO}
Paglalarawan Ang sagot na ibinigay sa Q00 ang papalit sa field na Q00 mula sa ikalawang tanong
Mga hakbang Gumawa/I-edit ang ikalawang tanong
Ipasok ang "Gaano ka na katagal naninirahan sa {QOO} (taon)?" sa field ng text ng tanong

Paggamit ng nakatagong tanong na equation upang awtomatikong punan ang sagot

Problema: Isipin na mayroon kayong dalawang tanong, Q1 at Q2. Tinatanong ng Q1 ang edad ng mga respondent. Hinahati ng Q2 ang mga respondent sa tatlong grupo: ang edad ay wala pang 20 taon, ang edad ay 20, ang edad ay higit sa 20. Kaya, dapat gamitin ng Q2 ang mga value na "1", "2", "3", na tumutugma sa mga kondisyon sa itaas. Huwag din nating kalimutang gawing hindi nakikita ang Q2 (hindi ipapakita ang tanong sa survey, ngunit ang mga value ay mapupunta sa talahanayan ng mga response sa pamamagitan ng "background process").

Upang punan ang database gamit ang uri ng tanong na Equation:

  • Una, gumawa ng tanong na may code na Q1 bilang numerical input na tanong.
  • Pagkatapos, gumawa ng isa pang tanong na may code na Q2 bilang equation na tanong.
  • Sa seksyon ng tab na "Display settings" ng Q2:
    • itakda ang field na "Palaging itago ang tanong na ito" sa "Naka-on"
    • i-type sa field na "Equation" ang expression:
{if(Q1.NAOK < 20, "1", if(Q1.NAOK > 20, "3", "2"))}

Gumawa ng pahina ng buod gamit ang mga placeholder

Ipinapakita ng tutorial na ito kung paano kayo makakagawa ng overview sa dulo ng survey, na naglilista ng lahat ng tanong at sagot sa pamamagitan ng mga placeholder ng ExpressionScript. Ipinapakita rin nito kung paano limitahan ang gayong overview sa mga natugunang tanong lamang.

Maaaring i-download ang aming halimbawa mula rito: Halimbawang survey para sa mga placeholder ng survey.


Mga uri ng tanong na ginamit dito:

1. Mga tanong na may isang opsyon / mga tanong na may isang text/numeric na sagot

  • Listahan (Drop-down)
  • Listahan (Radio) [L]
  • Oo/Hindi [Y]
  • Mahabang free text [T]
  • Maikling free text [S]
  • Numerical input [N]
  • Equation [*]


2. Tanong na may mga subquestion

  • Maraming maikling text [Q]
  • Multiple choice [M]
  • Array [F]
  • Array (Oo/Hindi/Hindi sigurado) [C]
  • Array (opsyong may 10 point) [B]


3. Mga tanong na may 2 scale

  • Dual scale ng array [1]


4. Mga tanong na may X at Y na scale

  • Array (Numero) [:]


5. Mga mask question

  • Display ng text [X]


Sa simpleng halimbawang ito, ang aming overview ay isang simpleng listahan na may:

- Text ng tanong: Sagot ng user


Mga tanong na may isang opsyon / mga tanong na may isang text/numeric na sagot

Para sa lahat ng uri ng tanong na ito, mag-iimbak ang LimeSurvey ng isang tugon:

  • Listahan (Drop-down)
  • Listahan (Radio)
  • Listahang may komento
  • Opsyong may 5 point
  • Oo/Hindi
  • Maikling free text
  • Mahabang free text
  • Malaking free text
  • Numerical input
  • Equation
  • Petsa
  • Kasarian

Kung ang code ng tanong ay q1, maaari nating i-reference ang text ng tanong at ang sagot gamit ang:

- {q1.question}: {q1.shown}

Halimbawa:

- Ilang taon ka na?: 25


Kung nais mong tiyakin kung nasagot ang tanong na iyon, maaari kang maglagay ng IF statement sa paligid ng iyong output:

{if(!is_empty(q1),join("- ",q1.question,": ",q1.shown),"")}

Ang ibig sabihin nito: KUNG hindi walang laman ang tanong na may code na q1, i-output ang "- " AT ang text ng tanong AT ": " AT ang text ng sagot (pinagsasama ng join() function ang mga elemento bilang isang bagong string); KUNG HINDI: walang i-output (ang "" ay nangangahulugang walang lamang string).

Tanong na may mga subquestion

Para sa lahat ng uri ng tanong na ito, gumagamit ang LimeSurvey ng mga subquestion:

  • Maraming maikling text
  • Multiple choice
  • Multiple choice na may komento
  • Array
  • Array (opsyong may 5 point)
  • Array (opsyong may 10 point)
  • Array (Oo/Hindi/Hindi sigurado)
  • Array (Dagdagan/Walang pinagbago/Bawasan)
  • Array ayon sa column

Kung ang code ng tanong ay q2 at ang mga subquestion ay may numerong SQ001, SQ002, (awtomatikong pagnunumero ng LimeSurvey), maaari nating i-reference ang text ng tanong at ang sagot gamit ang:

- {q2_SQ001.question}: {q2_SQ001.shown}

- {q2_SQ002.question}: {q2_SQ002.shown}

Para sa mga tanong na multiple choice, mas makabubuting huwag ipakita ang text ng na-tick na subquestion kundi magpakita ng Y para sa bawat napiling opsyon:

- {q2_SQ001.question}: {q2_SQ001}

- {q2_SQ002.question}: {q2_SQ002}

...

Tandaan na sa kasalukuyan, hindi pa posibleng i-output ang text ng tanong ng mga tanong na may mga subquestion, tingnan ang feature request na ito.


Halimbawa 1 (ipagpalagay na ang uri ng tanong ay multiple choice)

- Kilala mo ba ang mga brand ng kotse na ito?

-- Mercedes: Y

-- Audi: N

-- Volvo: Y


Kung nais mong i-output lamang ang mga napiling item, maaari kang maglagay ng IF statement sa paligid ng iyong output at suriin ang halaga ng checkbox:

{ if( q2_SQ001=="Y", join( "- ", q2_SQ001.question, ": ", q2_SQ001.shown ), "" ) }


Gamitin ang function na listifop kung nais mong mag-output ng listahan ng mga napiling item lamang, hal.: Mercedes, Volvo

{ listifop( 'value', '==', 'Y', 'question', ', ', that.q2.sgqa ) }


Kung saan ang  that.q2  ay lumalawak sa lahat ng subquestion ng q2. Tingnan ang self, this at that para sa karagdagang detalye.


Halimbawa 2 (ipagpalagay na ang uri ng tanong ay Array (opsyong may 10 point))

- Pakibigyan ng rating ang kalidad ng mga brand ng kotse sa ibaba sa scale na 1=napakasama hanggang 10=napakahusay?

-- Mercedes: 7

-- Audi: 9

-- Volvo: 9


Kung nais mong i-output lamang ang mga item na may rating, maaari kang maglagay ng IF statement sa paligid ng iyong output at suriin kung nasagot ang kasalukuyang subquestion gamit ang:

{ if( ! is_empty( q3_SQ001 ), join( "- ", q3_SQ001.question, ": ", q3_SQ001.shown ), "" ) }


Gamitin ang function na listifop kung, halimbawa, nais mong mag-output ng listahan ng mga napiling item na mas malaki sa walo, hal.: Audi / Volvo

{ listifop( 'value', '>', 8, 'question', ' / ', that.q3.sgqa ) }


Tanong na may dalawang scale

Nalalapat lamang ito sa uri ng tanong na dual scale.


Ipagpalagay nating ginagamit ang mga sumusunod na code:

  • Code ng tanong: q4
  • Mga code ng subquestion: SQ001, SQ002, ...
  • Mga code ng sagot sa scale 1: A1, A2, ...
  • Mga code ng sagot sa scale 2: B1, B2, ...


Upang tukuyin ang resulta ng isang partikular na subquestion sa isang partikular na scale, kailangan mong gamitin ang QuestionCode . '_' . SubQuestionCode . '_' . ScaleID. Tandaan na ang "ScaleID" ay 0 para sa unang scale at 1 para sa isa pa!
Halimbawa ng pagtukoy sa sagot ng ikatlong subquestion at ikalawang scale: q4_SQ003_1 - Tanong 4, subquestion 3, ikalawang scale.


I-output natin ang mga resulta para sa parehong scale at sa unang dalawang subquestion:

- {q4_SQ001_0.question}: {q4_SQ001_0.shown} / {q4_SQ001_1.shown}

- {q4_SQ002_0.question}: {q4_SQ002_0.shown} / {q4_SQ002_1.shown}

Upang i-output ang text ng subquestion, kailangan mong idagdag ang scale ID sa placeholder (bagaman pareho ang text para sa dalawang scale). Kaya sa halip na {q4_SQ001.question}, kailangan nating gamitin ang {q4_SQ001_0.question} o {q4_SQ001_1.question}.

Kung nais mong i-export/ipakita ang mga resulta ng mga subquestion na may kahit isang sagot lamang, gamitin ang syntax na ito para sa bawat subquestion:

{if(count(q4_SQ001_0,q4_SQ001_1)>0,join("- ",q4_SQ001_0.question,": ",q4_SQ001_0.shown," / ",q4_SQ001_1.shown),"")}

Tanong na may X at Y na scale

Naaangkop ito sa lahat ng matrix na tanong na nagpapahintulot ng sagot sa bawat cell (hindi lamang sa bawat row gaya ng ipinakita kanina):

  • Array Texts
  • Array Numbers


Mga code na ipinapalagay:

  • Code ng tanong: q5
  • Mga code ng subquestion: SQ001, SQ002, ...
  • Mga code ng sagot: A1, A2, ...

Para tukuyin ang resulta ng isang partikular na subquestion mula sa isang partikular na column, kailangan mong gamitin ang QuestionCode . '_' . SubQuestionCode . '_' . AnswerCode. Halimbawa para tukuyin ang sagot ng ikatlong subquestion at ikalawang column: q5_SQ003_A2.

I-output natin ang mga resulta para sa column 1-3 ng unang dalawang subquestion:

- {q5_SQ001_A1.question}: {q5_SQ001_A1.shown} | {q5_SQ001_A2.shown} | {q5_SQ001_A3.shown}

- {q5_SQ002_A1.question}: {q5_SQ002_A1.shown} | {q5_SQ002_A2.shown} | {q5_SQ002_A3.shown}


Dahil sa mga uri ng tanong na ito, ang bawat cell (kombinasyon ng X axis at Y axis) ay katumbas ng isang opsyon sa sagot, kailangang gawin ang pagsusuri para sa umiiral na data sa bawat cell. Halimbawa:

{if(!is_empty(q5_SQ001_A1),join("- ",q5_SQ001_A1.question,": ",q5_SQ001_A1.shown),"")}


Para i-output ang text ng subquestion, kailangan mong idagdag ang code ng sagot sa placeholder (kahit pareho ang mga text para sa lahat ng opsyon sa sagot). Kaya sa halip na {q5_SQ001.question}, kailangan nating gamitin ang {q5_SQ001_A1.question} o {q5_SQ001_A2.question}.

Itago ang tanong kung walang laman ang sagot mula sa nakaraang tanong

Layunin Itago ang tanong kung walang laman ang sagot mula sa nakaraang tanong
Uri Relevance ng tanong
Halimbawa Unang tanong: code ng tanong "name", text ng tanong "Ano ang pangalan mo?"
Ikalawang tanong: text ng tanong "{name}, ilang taon ka na?"
Gagawin: Itago ang ikalawang tanong kung walang laman ang textfield ng unang tanong
Expression !is_empty(name)
Paglalarawan Tinutukoy ng is_empty() kung ang isang variable ay itinuturing na walang laman. Binabaligtad ng "!" ang resulta. Kaya kung hindi walang laman ang variable, magiging true ang Expression at ipapakita ang tanong
Mga hakbang Gumawa/i-edit ang ikalawang tanong
Ilagay ang "!is_empty(name)" sa "Relevance equation:"
Sample na file Hide_question_if_empty_question_group.zip


Itago ang pangkat ng tanong kung Oo o Hindi ang sagot mula sa nakaraang tanong

Layunin Itago ang pangkat ng tanong kung Oo o Hindi ang sagot mula sa nakaraang tanong
Uri Relevance ng pangkat ng tanong
Halimbawa Unang pahina, Unang pangkat ng tanong, Unang tanong: code ng tanong "PET", text ng tanong "May alaga ka bang hayop?" -Oo -Hindi
Ikalawang pahina, Ikalawang pangkat ng tanong: Pamagat "Tungkol sa iyong alagang hayop"
Gagawin: Ipakita/Itago ang ikalawang pangkat ng tanong depende kung Oo/Hindi ang sagot sa unang tanong
Expression PET == "Y"
Paglalarawan Ang PET ay ang code ng tanong na gusto mong suriin ang sagot. Kung hindi ka gagamit ng suffix, gagamitin ng EM ang "Qcode.code". Kaya ikinukumpara mo ang code ng sagot mula sa tanong na PET sa halagang "Y". Kung sumagot ng "Oo" ang kalahok, magiging true ang Expression at ipapakita ang pangkat ng tanong na "Tungkol sa iyong alagang hayop".
Mga hakbang Gumawa/i-edit ang ikalawang pangkat ng tanong
Ilagay ang "PET == "Y"" sa "Relevance equation:"
Sample na file Hide_question group_if_answer_from_previous_question_is_Yes_or_No.zip


Ipakita ang halaga ng field ng tanong na may maraming input ng sagot

Layunin Ipakita ang halaga ng field ng tanong na may maraming input ng sagot
Uri Reference
Halimbawa Unang tanong: code ng tanong "AskChildAge", text ng tanong "Ilang taon na ang mga anak mo?". Mga code ng subquestion -Child1 -Child2 -Child3 - ChildXXX
Ikalawang tanong: code ng tanong "ReportChildAge" text ng tanong "Tungkol sa iyong unang anak: - CHILD1 ay AGE1."
Expression {AskChildAge_Child1.question}, {AskChildAge_Child1.value}
Paglalarawan Gusto mong gamitin ang halaga ng isang subquestion sa susunod na tanong. Maa-access mo ang halaga ng subquestion gamit ang ganitong uri ng expression: QcodeQuestion_QcodeSubquestion.value
Mga hakbang Gumawa/i-edit ang ikalawang tanong
Ilagay ang text na ito sa paglalarawan: "Tungkol sa iyong unang anak: - {AskChildAge_Child1.question} ay {AskChildAge_Child1.value}."
Sample na file Display_value_of_a_multiple_answer_input_question_field.zip

I-validate ang bilang ng mga kahong may tsek sa bawat row para sa tanong na "Array (Numero) Checkbox"

Layunin I-validate ang bilang ng mga kahong may tsek sa bawat row
Uri Pag-validate
Halimbawa Tanong na may uri na "Array Numbers (Checkbox Layout)"
Expression sum(...)
Paglalarawan Tinutukoy ng (sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= X) kung may tsek ang hindi bababa sa X na checkbox sa row A.
Kung gusto mong suriin ang lahat ng tatlong row (A, B, C), maaari mong pagdugtungin ang expression gamit ang "&&":
(sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= X)
&& (sum(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= X)
&& (sum(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) <= X)
Mga hakbang Gumawa/i-edit ang tanong na may uri na "Array Numbers (Checkbox Layout)".
Ilagay ang expression sa itaas sa "Equation sa pag-validate ng tanong" sa mga advanced na setting ng tanong (maaaring kailanganin mong ayusin ang mga pangalan ng variable!).
Sample na file Validate number of boxes ticker per row for an Array (Numbers) Checkbox.lss

Kalkulahin ang pagkakaiba ng dalawang petsa

Layunin Kalkulahin ang pagkakaiba ng dalawang petsa
Uri Relevance / Uri ng tanong na Equation / Pag-validate
Halimbawa Unang tanong (petsa/oras, code: DOB): Kailan ang petsa ng kapanganakan mo?
Ikalawang tanong (petsa/oras, code: datetoday): Anong petsa ngayon?
Ikatlong tanong (boilerplate): XXXX araw ka na.
Gagawin: Kalkulahin at ipakita ang bilang ng mga araw sa pagitan ng petsang ibinigay sa tanong 1 at tanong 2.
Expression {(strtotime(datetoday)-strtotime(DOB))/60/60/24}
Paglalarawan Kinakalkula ng strtotime ang bilang ng segundo sa pagitan ng ika-1 ng Enero 1970 at ng ibinigay na petsa. Kinakalkula ng expression sa itaas ang bilang ng segundo sa pagitan ng dalawang ibinigay na petsa. Ang terminong "/60/60/24" ay kumukuha lamang ng bilang ng mga araw mula sa bilang ng segundo.
Sa halip na itanong ang "datetoday", maaari mo ring gamitin ang strtotime('now') o simpleng time(), na direktang nagbabalik ng bilang ng segundo mula Enero 1970 hanggang ngayon (ibig sabihin, ang oras kung kailan sinagutan ang survey). Kaya mabilis mong malalaman ang edad ng isang tao sa taon gamit ang equation na {(time() - strtotime(DOB)) / 60 / 60 / 24 / 365.25} Sa alinman sa mga kasong ito, mahalagang tama ang format ng ipinasok na petsa, kung hindi ay hindi gagana nang maayos ang function na strtotime().
Mga hakbang Gumawa ng dalawang tanong na petsa (para sa petsa ng kapanganakan at para sa petsa ngayon) at isang boilerplate na tanong.
Sa text ng tanong ng boilerplate na tanong, ilagay ang: "Noong {datetoday} ay {(strtotime(today)-strtotime(dob))/60/60/24} araw ka na."

Pakitandaan: Maraming format ng petsa ang kayang gamitin ng function na strtotime ngunit hindi lahat. Kung magkaproblema, itakda ang format ng petsa ng iyong survey sa mm/dd/yyyy o yyyy-mm-dd o dd.mm.yyyy"
Sample na file Date_difference.zip

Paggamit ng ExpressionScript para sa mga Assessment

Narito ang isa pang halimbawa kung paano gamitin ang ExpressionScript sa mga tanong na uri ng array at mga assessment:</ br>

Sabihin nating mayroon kang 2 tanong na array at gusto mong i-save sa iyong database ang mga resulta ng kalkulasyon. Simple lang ito: kailangan mong gumawa at subukan ang iyong mga array at magsumite ng dummy na tugon para makita kung gumagana ito at ibinibigay ang mga resulta sa pahina ng pagkumpleto.


Mga detalye ng implementasyon:

  • magdagdag ng tanong na uri ng equation
  • idagdag ang sumusunod na linya, ipinapalagay na ang Q1 ay ang code ng iyong tanong na array at ang Q2 ay ang ikalawa:
    • {sum(Q1_SQ001.value,Q2_SQ001.value)}

Tandaan na ang SQ001 ang default na code para sa anumang subquestion. Kung babaguhin mo ang code ng subquestion, ayusin nang naaayon ang equation sa itaas.


Paggamit ng em_validation_q sa array

Maaari mong gamitin ang equation sa pag-validate ng tanong para kontrolin ang isang array gamit ang anumang kondisyon.


Mga detalye ng implementasyon:

  • para sa unang array : array ng single choice
    • Ang code ng tanong ay ARRAY
    • Ang mga code ng subquestion ay SQ01,SQ02,SQ03 at SQ04
    • i-update ang Equation sa pag-validate ng buong tanong at ilagay ang
      !is_empty(ARRAY_SQ01) and !is_empty(ARRAY_SQ03) 
  • para sa ikalawang array : array ng text
    • Ang code ng tanong ay ARRAYTEXT
    • Ang mga code ng subquestion sa Y axis ay SY01,SY02,SY03, at SY04
    • I-update ang Equation sa pag-validate ng buong tanong at ilagay ang
      count(self.sq_SY01 >= 1) and count(self.sq_SY03 >= 3)