x

Үндсэн бүлгүүд

  1. LimeSurvey Cloud ба LimeSurvey CE-ийн харьцуулалт
  2. Хурдан эхлэх гарын авлага - LimeSurvey 3.0+
  3. Суулгалт - LimeSurvey CE
  4. Сайн судалгааг хэрхэн зохиох вэ (гарын авлага)
  5. Эхлэх нь
  6. LimeSurvey-г удирдах
  7. Судалгаа - танилцуулга
  8. Судалгааны тохируулга
  9. Судалгааны цэс
  10. Судалгааны бүтэц
  11. Асуултууд - танилцуулга
  12. Асуултын бүлэг - танилцуулга
  13. Судалгаа - удирдлага
  14. Судалгааны хэрэгслийн самбарын сонголтууд
  15. Олон хэлтэй судалгаа
  16. ExpressionScript Engine - Хурдан эхлэх гарын авлага
  17. Ангилагдаагүй болон нарийвчилсан боломжууд
  18. Түгээмэл асуултууд
  19. Алдаа засварлах
  20. Түр шийдлүүд
  21. Лиценз
  22. Хувилбарын өөрчлөлтүүдийн жагсаалт
  23. Плагинууд
 Actions

ExpressionScript-ийн жишээнүүд

From LimeSurvey Manual

Энэ хуудсыг машинаар орчуулсан байж магадгүй тул алдаа агуулж болзошгүй. Англи эх хувийг харах · Энэ орчуулгыг сайжруулах
This page is a translated version of the page ExpressionScript examples and the translation is 100% complete.
Өөрийн жишээгээ нэмж, энэ нийтлэлийг баяжуулахад тусална уу. Энэ нь бусдад Expression Script-ийг ашиглаж эхлэхэд тусална.


Бүтэц

Нийтлэлийн эхний хэсэгт илэрхийллийг юунд ашиглаж болох, илэрхийллийг хаанаас олох/нэмэх талаар тайлбарлана. Хоёр дахь хэсэгт илэрхийллийг хэрхэн ашиглах жишээнүүдийг толилуулна.


Илэрхийллийн ангилал

LimeSurvey илэрхийллийг дараах зорилгоор ашигладаг:


Ач холбогдол

Зорилго: Асуултын бүлэг/асуултыг нуух

Ач холбогдол нь асуултын бүлэг эсвэл асуултыг харуулах эсвэл нуухыг хянадаг. Илэрхийллийн үр дүн "үнэн" (өөрөөр хэлбэл 1) бол элемент харагдана. Үгүй бол (илэрхийллийн үр дүн "худал" (өөрөөр хэлбэл 0) бол) элемент нуугдана.

Төрөл Харуулах/нуух зүйл Хаанаас олох Дэлгэцийн зураг
Асуултын бүлгийн ач холбогдол асуултын бүлэг Асуултын бүлэг үүсгэх/засах -> "Холбогдох тэгшитгэл:"
Асуултын ач холбогдол асуулт Асуулт үүсгэх/засах -> "Холбогдох тэгшитгэл:"
Дэд асуултын ач холбогдол дэд асуулт Дэд асуултыг засах -> "Холбогдох тэгшитгэл:"


Баталгаажуулалт

Зорилго: Асуулт/дэд асуулт/хариулт дээрх оролт/үйлдлийг баталгаажуулах

Баталгаажуулалт нь respondent-ын асуулт эсвэл үйлдэлд оруулсан утга хүчинтэй эсэхийг хянадаг. Хэрэв илэрхийллийн үр дүн "true" (өөрөөр хэлбэл 1) бол элемент болон баталгаажуулалтын мессежид "good" класс хэрэглэгдэнэ. Үгүй бол, хэрэв илэрхийллийн үр дүн "false" (өөрөөр хэлбэл 0) бол элемент болон баталгаажуулалтын мессежид "error" класс хэрэглэгдэнэ. Эдгээр классуудын загварыг template.css' файлд зарлаж болно.

Төрөл Баталгаажуулах зүйл Хаанаас олох Дэлгэцийн зураг
Асуултын баталгаажуулалт асуулт Асуулт үүсгэх/засах -> "Логик таб" -> "Асуултын батламжилсан тэгшитгэлл"
Дэд асуултын баталгаажуулалт дэд асуултууд Асуулт үүсгэх/засах -> "Логик таб" -> "Дэд асуултын баталгаажуулалтын тэгшитгэл" ‎

Текст гаралт

Зорилго: (Ямар нэг зүйл хийж) текст гаргах

Илэрхийллийг текст гаргахад ашиглаж болно. Жишээлбэл, ямар нэг зүйлийг шалгах эсвэл тооцоолж, шалгалт эсвэл тооцооллын үр дүнгээс хамааруулан гаралтыг тодорхойлж болно. Мөн илэрхийллийг ашиглахаас өмнө ашигласан асуултын асуултын текст, хариулт, асуултын төрөл зэргийг оруулахад ашиглаж болно. Текст гаралтыг текст харагдах бүх газарт ашиглаж болох бөгөөд ямар ч төрлийн үр дүн буцааж чадна.

Хэрэглээний тохиолдол Тодорхойлолт
Микро тохируулга Текстийг тохируулах, жишээлбэл өмнө асуусан хүйсийн асуултаас хамааран "Ноён" эсвэл "Хатагтай" гэж бичих
Тооцоолол Утгыг тооцоолж гаргах, жишээлбэл "Таны гэр бүлийн орлого xxx байна"
Лавлагаа Элементээс текст оруулах, жишээлбэл "Таны нэр xxx. Та хэдэн настай вэ?"


Хариулт хадгалах

Зорилго: (Ямар нэг зүйл хийж,) (текст гаргаж) мэдээллийн санд ямар нэг зүйлийг хадгалах

Тэгшитгэл асуултын төрөл-ийг мэдээллийн санд ямар нэг зүйл хадгалахад ашиглаж болно. Илэрхийллээр ямар нэг зүйл хийж, Тэгшитгэл асуултыг (текст харуулах асуулттай төстэй) харуулж, илэрхийллийн үр дүнг мэдээллийн санд хадгалах боломжтой. Энэ нь хариултыг responses хүснэгтэд хадгална. Дараа нь үр дүнг статистикийн боломжид ашиглаж болно, мөн LimeSurvey-ийн экспортын функцээр өгсөн форматуудын аль нэгээр импортолж болно.

Илэрхийллийн жишээнүүд

Өмнөх асуултын хариултыг оруулах

Зорилго Өмнөх асуултын хариултыг оруулах
Төрөл Лавлагаа
Жишээ Нэг дүгээр асуулт (асуултын код "Q00"): Та ямар хотод амьдардаг вэ?
Хоёр дугаар асуулт (асуултын код "Q01") Та CITY хотод хэр удаан амьдарсан бэ?
Хийх зүйл: Хоёр дахь асуултын "CITY"-ийн оронд эхний асуултын хариултыг ашиглах.
Илэрхийлэл {QOO}
Тодорхойлолт Q00-д өгсөн хариулт нь хоёр дахь асуултын Q00 талбарыг орлоно
Алхмууд Хоёр дугаар асуултыг үүсгэх/засах
Асуултын текст талбарт "Та {QOO} хотод хэдэн жил амьдарсан бэ?" гэж оруулна

Нуугдмал тэгшитгэл асуултаар хариултыг автоматаар бөглөх

Асуудал: Танд Q1 ба Q2 гэсэн хоёр асуулт байна гэж бодъё. Q1 нь respondent-уудаас насыг нь асууна. Q2 нь respondent-уудыг гурван бүлэгт хуваана: нас 20-оос доош, нас 20, нас 20-оос дээш. Иймд Q2 нь дээрх нөхцөлүүдэд харгалзах "1", "2", "3" утгуудыг ашиглах ёстой. Мөн Q2-ыг үл үзэгдэх болгохоо мартаж болохгүй (асуулт судалгаанд харагдахгүй боловч утгууд нь "арын процесс"-оор responses хүснэгтэд хадгалагдана).

Тэгшитгэл асуултын төрлөөр мэдээллийн санг бөглөх:

  • Эхлээд Q1 кодтой асуултыг Тоон оролт асуултаар үүсгэнэ.
  • Дараа нь Q2 кодтой өөр асуултыг тэгшитгэл асуултаар үүсгэнэ.
  • Q2-ын "Дэлгэцийн тохиргоо" таб хэсэгт:
    • "Энэ асуултийг нуу" талбарыг "On" болгож тохируулна
    • "Equation" талбарт дараах илэрхийллийг бичнэ:
{if(Q1.NAOK < 20, "1", if(Q1.NAOK > 20, "3", "2"))}

Placeholder ашиглан хураангуй хуудас үүсгэх

Энэ заавар нь судалгааны төгсгөлд ExpressionScript placeholder-уудаар бүх асуулт, хариултыг жагсаасан тойм хэрхэн үүсгэхийг харуулна. Мөн ийм тоймыг зөвхөн хариулсан асуултуудаар хэрхэн хязгаарлахыг харуулна.

Манай жишээг эндээс татаж авах боломжтой: Судалгааны орлуулагчийн судалгааны жишээ.


Энд ашиглагдаж буй асуултын төрлүүд:

1. Ганцхан асуултыг сонгох / ганц текст/тоон асуултууд

  • Жагсаалт (буудаг)
  • жагсаалт (радио ) [L]
  • Тийм/Үгүй [Y]
  • Үнэгүй урт текст [T]
  • Богино үнэгүй текст [S]
  • Тоон оролт [N]
  • Тэгшитгэл [*]


2. Дэд асуулттай асуулт

  • Олон тооны богино текст [Q]
  • Олон сонголт [M]
  • Хүснэгт [F]
  • хүснэгт (тимй/ үгүй / тодорхойгүй ) [C]
  • Массив (10 онооны сонголт) [B]


3. 2 хуваарьтай асуултууд

  • давхар хуваарь бүхий хүснэгт [1]


4. X ба Y хуваарьтай асуултууд

  • Хүснэгт (тоо) [:]


5. масктай асуулт

  • дэлгэцэнд текст харагдана [X]


Энэ энгийн жишээнд манай тойм нь дараах хэлбэртэй энгийн жагсаалт байна:

- Асуултын текст: Хэрэглэгчийн хариулт


Ганцхан асуултыг сонгох / ганц текст/тоон асуултууд

Эдгээр бүх асуултын төрлийн хувьд LimeSurvey нэг хариулт хадгалдаг:

  • Жагсаалт (буудаг)
  • жагсаалт (радио )
  • Тайлбартай жагсаалт
  • 5 онооны сонголт
  • Тийм/Үгүй
  • Богино үнэгүй текст
  • Үнэгүй урт текст
  • Асар том үнэгүй текст
  • Тоон оролт
  • Тэгшитгэл
  • Огноо
  • Хүйс

Асуултын код нь q1 гэж үзвэл, асуултын текст болон хариултыг дараах байдлаар дуудаж болно:

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

Жишээ:

- Таны нас хэд вэ?: 25


Тухайн асуултад хариулсан эсэхийг шалгахыг хүсвэл гаралтаа IF илэрхийллээр хүрээлж болно:

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

Үүнийг дараах байдлаар "орчуулж" болно: ХЭРВЭЭ q1 кодтой асуулт хоосон биш бол "- " БОЛОН асуултын текст БОЛОН ": " БОЛОН хариултын текстийг гаргана (join() функц элементүүдийг шинэ мөр болгон нэгтгэдэг); ҮГҮЙ БОЛ: юу ч гаргахгүй ("" нь хоосон мөр гэсэн үг).

Дэд асуулттай асуулт

Эдгээр бүх асуултын төрлийн хувьд LimeSurvey дэд асуулт ашигладаг:

  • Олон тооны богино текст
  • Олон сонголт
  • Тайлбартай олон сонголт
  • Хүснэгт
  • Массив (5 онооны сонголт)
  • Массив (10 онооны сонголт)
  • хүснэгт (тимй/ үгүй / тодорхойгүй )
  • хүснэгт (өсөх / тэнцэх / буурах )
  • баганан хүснэгт

Асуултын код нь q2, дэд асуултууд нь SQ001, SQ002 гэж дугаарлагдсан (LimeSurvey автоматаар дугаарладаг) гэж үзвэл, асуултын текст болон хариултыг дараах байдлаар дуудаж болно:

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

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

Олон сонголттой асуултын хувьд сонгосон дэд асуултын текстийг харуулахын оронд сонгосон сонголт бүрт Y гэж харуулах нь утга учиртай:

- {q2_SQ001.question}: {q2_SQ001}

- {q2_SQ002.question}: {q2_SQ002}

...

Одоогоор дэд асуулттай асуултуудын асуултын текстийг гаргах боломжгүй гэдгийг анхаарна уу, энэ боломжийн хүсэлтийг үзнэ үү.


Жишээ 1 (асуултын төрөл нь олон сонголт гэж үзвэл)

- Та эдгээр машины брэндүүдийг мэдэх үү?

-- Mercedes: Y

-- Audi: N

-- Volvo: Y


Хэрэв зөвхөн сонгосон зүйлсийг гаргахыг хүсвэл гаралтынхаа эргэн тойронд IF илэрхийлэл ашиглаж, чекбоксын утгыг шалгаж болно:

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


Хэрэв зөвхөн сонгосон зүйлсийн жагсаалтыг гаргахыг хүсвэл listifop функцийг ашиглана уу, жишээлбэл: Mercedes, Volvo

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


Энд  that.q2  нь q2-ын бүх дэд асуулт болж өргөжнө. Дэлгэрэнгүйг self, this болон that хэсгээс үзнэ үү.


Жишээ 2 (асуултын төрөл нь Массив (10 онооны сонголт) гэж үзвэл)

- Доорх машины брэндүүдийн чанарыг 1=маш муу, 10=маш сайн гэсэн хэмжүүрээр үнэлнэ үү?

-- Mercedes: 7

-- Audi: 9

-- Volvo: 9


Хэрэв зөвхөн үнэлгээ өгсөн зүйлсийг гаргахыг хүсвэл гаралтынхаа эргэн тойронд IF илэрхийлэл ашиглаж, одоогийн дэд асуултад хариулсан эсэхийг дараах байдлаар шалгаж болно:

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


Жишээлбэл, зөвхөн наймаас илүү үнэлгээтэй сонгосон зүйлсийн жагсаалтыг гаргахыг хүсвэл listifop функцийг ашиглана уу, жишээлбэл: Audi / Volvo

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


Хоёр шаталбартай асуулт

Энэ нь зөвхөн хос шаталбартай асуултын төрөлд хамаарна.


Дараах кодуудыг ашиглаж байна гэж үзье:

  • Асуултын код: q4
  • Дэд асуултын кодууд: SQ001, SQ002, ...
  • Хариултын код, шаталбар нэг: A1, A2, ...
  • Хариултын код, шаталбар 2: B1, B2, ...


Тодорхой шаталбар дээрх тодорхой дэд асуултын үр дүнд хандахын тулд QuestionCode . '_' . SubQuestionCode . '_' . ScaleID хэлбэрийг ашиглах хэрэгтэй. Анхаарна уу: "ScaleID" нь эхний шаталбарт 0, нөгөөд нь 1 байна!
Гурав дахь дэд асуулт ба хоёр дахь шаталбарын хариултад хандах жишээ: q4_SQ003_1 - 4-р асуулт, 3-р дэд асуулт, хоёр дахь шаталбар.


Хоёр шаталбарын үр дүнг эхний хоёр дэд асуултаар гаргая:

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

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

Дэд асуултын текстийг гаргахын тулд placeholder-т шаталбарын ID-г нэмэх шаардлагатай (хоёр шаталбарт текстүүд адил байдаг ч). Тиймээс {q4_SQ001.question}-ийн оронд {q4_SQ001_0.question} эсвэл {q4_SQ001_1.question}-ийг ашиглана.

Хэрэв дор хаяж нэг хариулттай дэд асуултуудын үр дүнг зөвхөн экспортлох/харуулахыг хүсвэл дэд асуулт бүрт дараах синтаксийг ашиглана уу:

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

X ба Y хүрээтэй асуулт

Энэ нь нүд болгонд хариулт өгөх боломжтой (өмнө үзүүлсэн шиг зөвхөн мөр болгонд биш) бүх матриц асуултад хамаарна:

  • Хүснэгт (текст)
  • Хүснэгт (тоо)


Ашигласан кодууд гэж үзье:

  • Асуултын код: q5
  • Дэд асуултын кодууд: SQ001, SQ002, ...
  • Хариултын кодууд: A1, A2, ...

Тодорхой нэг баганын тодорхой дэд асуултын хариултыг лавлахын тулд QuestionCode . '_' . SubQuestionCode . '_' . AnswerCode хэлбэрийг ашиглах хэрэгтэй. Жишээ нь, гурав дахь дэд асуултын хоёр дахь баганын хариултыг лавлахдаа: q5_SQ003_A2.

Эхний хоёр дэд асуултын 1-3-р баганын хариултуудыг гаргаж үзье:

- {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}


Эдгээр асуултын төрөлд нүд бүр (X тэнхлэг ба Y тэнхлэгийн хослол) нэг хариултын сонголттой тэнцүү тул нүд бүрт өгөгдөл байгаа эсэхийг шалгах шаардлагатай. Жишээ:

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


Дэд асуултын текстийг гаргахын тулд placeholder-т хариултын кодыг нэмэх хэрэгтэй (хэдийгээр бүх хариултын сонголтод текст ижил байдаг ч). Тиймээс {q5_SQ001.question}-ийн оронд {q5_SQ001_A1.question} эсвэл {q5_SQ001_A2.question}-ийг ашиглах ёстой.

Өмнөх асуултын хариулт хоосон бол асуултыг нуух

Зорилго Өмнөх асуултын хариулт хоосон бол асуултыг нуух
Төрөл Асуултын хамаарал
Жишээ Нэгдүгээр асуулт: асуултын код "name", асуултын текст "Таны нэр хэн бэ?"
Хоёрдугаар асуулт: асуултын текст "{name}, та хэдэн настай вэ?"
Хийх зүйл: Нэгдүгээр асуултын текстийн талбар хоосон бол хоёрдугаар асуултыг нуух
Илэрхийлэл !is_empty(name)
Тодорхойлолт is_empty() нь хувьсагч хоосон гэж тооцогдох эсэхийг тодорхойлдог. "!" нь үр дүнг урвуулна. Тиймээс хувьсагч хоосон биш бол илэрхийлэл үнэн болж, асуулт харагдана
Алхмууд Хоёрдугаар асуултыг үүсгэх/засах
"Холбогдох тэгшитгэл" талбарт "!is_empty(name)" гэж оруулна
Жишээ файл Hide_question_if_empty_question_group.zip


Өмнөх асуултын хариулт Тийм эсвэл Үгүй бол асуултын бүлгийг нуух

Зорилго Өмнөх асуултын хариулт Тийм эсвэл Үгүй бол асуултын бүлгийг нуух
Төрөл Асуултын бүлгийн хамаарал
Жишээ Нэгдүгээр хуудас, нэгдүгээр асуултын бүлэг, нэгдүгээр асуулт: асуултын код "PET", асуултын текст "Танд гэрийн тэжээвэр амьтан байдаг уу?" -Тийм -Үгүй
Хоёрдугаар хуудас, хоёрдугаар асуултын бүлэг: Гарчиг "Таны тэжээвэр амьтан(ууд)ын тухай"
Хийх зүйл: Нэгдүгээр асуултын хариулт Тийм/Үгүй байхаас хамааран хоёрдугаар асуултын бүлгийг харуулах/нуух
Илэрхийлэл PET == "Y"
Тодорхойлолт PET нь хариултыг нь шалгах асуултын асуултын код юм. Хэрэв дагавар ашиглахгүй бол EM нь "Qcode.code"-ийг ашиглана. Тэгэхээр та PET асуултын хариултын кодыг "Y" утгатай харьцуулж байна. Хэрэв оролцогч "Тийм" гэж хариулбал илэрхийлэл үнэн болж, "Таны тэжээвэр амьтан(ууд)ын тухай" асуултын бүлэг харагдана.
Алхмууд Хоёрдугаар асуултын бүлгийг үүсгэх/засах
"Холбогдох тэгшитгэл" талбарт "PET == "Y"" гэж оруулна
Жишээ файл Hide_question group_if_answer_from_previous_question_is_Yes_or_No.zip


Олон хариулттай асуултын талбарын утгыг харуулах

Зорилго Олон хариулттай асуултын талбарын утгыг харуулах
Төрөл Лавлагаа
Жишээ Нэгдүгээр асуулт: асуултын код "AskChildAge", асуултын текст "Таны хүүхдүүд хэдэн настай вэ?". Дэд асуултын кодууд -Child1 -Child2 -Child3 - ChildXXX
Хоёрдугаар асуулт: асуултын код "ReportChildAge", асуултын текст "Таны эхний хүүхдийн тухай: - CHILD1 нь AGE1 настай."
Илэрхийлэл {AskChildAge_Child1.question}, {AskChildAge_Child1.value}
Тодорхойлолт Та дэд асуултын утгыг дараагийн асуултад ашиглахыг хүсч байна. Дэд асуултын утгыг ийм төрлийн илэрхийллээр авч болно: QcodeQuestion_QcodeSubquestion.value
Алхмууд Хоёрдугаар асуултыг үүсгэх/засах
Тодорхойлолтод энэ текстийг оруулна: "Таны эхний хүүхдийн тухай: - {AskChildAge_Child1.question} нь {AskChildAge_Child1.value} настай."
Жишээ файл Display_value_of_a_multiple_answer_input_question_field.zip

"Хүснэгт (тоо) Checkbox" асуултад мөр бүрт чагталсан нүдний тоог баталгаажуулах

Зорилго Мөр бүрт чагталсан нүдний тоог баталгаажуулах
Төрөл Баталгаажуулалт
Жишээ "Хүснэгт (тоо) (check box төлөвлөгөө)" төрлийн асуулт
Илэрхийлэл sum(...)
Тодорхойлолт (sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= X) нь A мөрөнд наад зах нь X checkbox чагтлагдсан эсэхийг тодорхойлно.
Хэрэв гурван мөрийг (A, B, C) бүгдийг шалгахыг хүсвэл илэрхийллийг "&&" ашиглан холбож болно:
(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)
Алхмууд "Хүснэгт (тоо) (check box төлөвлөгөө)" төрлийн асуултыг үүсгэх/засах.
Дээрх илэрхийллийг асуултын нарийвчилсан тохиргоо дахь "асуултын батламжилсан тэгшитгэлл" талбарт оруулна (хувьсагчийн нэрийг өөрчлөх шаардлага гарч магадгүй!).
Жишээ файл Validate number of boxes ticker per row for an Array (Numbers) Checkbox.lss

Хоёр огнооны зөрүүг тооцоолох

Зорилго Хоёр огнооны зөрүүг тооцоолох
Төрөл Хамаарал / Тэгшитгэл асуултын төрөл / Баталгаажуулалт
Жишээ Нэгдүгээр асуулт (огноо/цаг, код: DOB): Таны төрсөн огноо хэзээ вэ?
Хоёрдугаар асуулт (огноо/цаг, код: datetoday): Өнөөдөр хэдэн сарын хэд вэ?
Гуравдугаар асуулт (boilerplate): Та XXXX хоногтой болсон байна.
Хийх зүйл: 1-р асуултад өгсөн огноо болон 2-р асуултын хоорондох хоногийн тоог тооцоолж харуулах.
Илэрхийлэл {(strtotime(datetoday)-strtotime(DOB))/60/60/24}
Тодорхойлолт strtotime нь 1970 оны 1-р сарын 1-ээс өгөгдсөн огноо хүртэлх секундийн тоог тооцоолно. Дээрх илэрхийлэл нь өгөгдсөн хоёр огнооны хоорондох секундийн тоог тооцоолно. "/60/60/24" гэсэн хэсэг нь секундийн тооноос хоногийн тоог гаргана.
"datetoday"-г асуухын оронд strtotime('now') эсвэл зүгээр л time()-г ашиглаж болно. Эдгээр нь 1970 оны 1-р сараас одоог хүртэл (өөрөөр хэлбэл судалгаа бөглөсөн цаг хүртэл) өнгөрсөн секундийн тоог шууд буцаана. Ингэснээр {(time() - strtotime(DOB)) / 60 / 60 / 24 / 365.25} тэгшитгэлээр хүний насыг жилээр хурдан тооцоолж болно. Аль ч тохиолдолд огноог зөв форматаар оруулах нь чухал, эс тэгвээс strtotime() функц зөв ажиллахгүй.
Алхмууд Хоёр огноотой асуулт (төрсөн огноо болон өнөөдрийн огноо) болон нэг boilerplate асуулт үүсгэнэ.
Boilerplate асуултын асуултын текстэд дараахыг оруулна: "{datetoday}-д та {(strtotime(today)-strtotime(dob))/60/60/24} хоногтой байсан."

Анхаарна уу: strtotime функц олон боловч бүх огнооны форматтай ажиллаж чадахгүй. Асуудал гарвал судалгааныхаа өдрийг форматлах тохиргоог mm/dd/yyyy эсвэл yyyy-mm-dd эсвэл dd.mm.yyyy болгож тохируулна уу"
Жишээ файл Date_difference.zip

Үнэлгээнд ExpressionScript ашиглах

Энд хүснэгт төрлийн асуултууд болон үнэлгээнд ExpressionScript-ийг хэрхэн ашиглах өөр нэг жишээ байна:</ br>

Танд 2 хүснэгт асуулт байгаа бөгөөд тооцооллын үр дүнг өгөгдлийн санд хадгалахыг хүсэж байна гэе. Үнэндээ энэ нь энгийн: хүснэгтүүдээ үүсгэж, туршиж, ажиллаж байгаа эсэх болон дуусгавар хуудсанд үр дүн гарч байгааг шалгахын тулд туршилтын хариулт илгээх хэрэгтэй.


Хэрэгжүүлэх дэлгэрэнгүй:

  • тэгшитгэл төрлийн асуулт нэмнэ
  • Q1 нь таны хүснэгт асуултын код, Q2 нь хоёр дахь нь гэж үзээд дараах мөрийг нэмнэ:
    • {sum(Q1_SQ001.value,Q2_SQ001.value)}

SQ001 нь дэд асуулт бүрийн анхдагч код гэдгийг анхаарна уу. Хэрэв дэд асуултын кодыг өөрчилбөл дээрх тэгшитгэлийг зохих ёсоор тохируулна уу.


Хүснэгтэд em_validation_q ашиглах

Та асуултын батламжилсан тэгшитгэл-ийг ашиглан хүснэгтийг дурын нөхцөлөөр хянаж болно.


Хэрэгжүүлэх дэлгэрэнгүй:

  • эхний хүснэгт : нэг сонголттой хүснэгт
    • Асуултын код нь ARRAY
    • Дэд асуултын кодууд нь SQ01,SQ02,SQ03 болон SQ04
    • Асуулт бүхэлдээ хамрах баталгаажуулах тэгшитгэлийг шинэчилж дараахыг оруулна
      !is_empty(ARRAY_SQ01) and !is_empty(ARRAY_SQ03) 
  • хоёр дахь хүснэгт : текстийн хүснэгт
    • Асуултын код нь ARRAYTEXT
    • Y тэнхлэг дээрх дэд асуултын кодууд нь SY01,SY02,SY03, болон SY04
    • Асуулт бүхэлдээ хамрах баталгаажуулах тэгшитгэлийг шинэчилж дараахыг оруулна
      count(self.sq_SY01 >= 1) and count(self.sq_SY03 >= 3)