x

Bab utama

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Panduan memulai cepat - LimeSurvey 3.0+
  3. Instalasi - LimeSurvey CE
  4. Cara merancang survei yang baik (panduan)
  5. Memulai
  6. Mengelola LimeSurvey
  7. Survei - pengantar
  8. Pengaturan survei
  9. Menu survei
  10. Struktur survei
  11. Pertanyaan - pengantar
  12. Grup pertanyaan - pengantar
  13. Survei - manajemen
  14. Opsi toolbar survei
  15. Survei multibahasa
  16. ExpressionScript Engine - Panduan memulai cepat
  17. Fitur tanpa kategori dan fitur lanjutan
  18. FAQ Umum
  19. Pemecahan Masalah
  20. Solusi Sementara
  21. Lisensi
  22. Log perubahan versi
  23. Plugin
 Actions

Contoh ExpressionScript

From LimeSurvey Manual

Halaman ini mungkin diterjemahkan oleh mesin dan dapat mengandung kesalahan. Tampilkan versi asli bahasa Inggris · Perbaiki terjemahan ini
This page is a translated version of the page ExpressionScript examples and the translation is 100% complete.
Mohon bantu kembangkan artikel ini dengan menambahkan contoh Anda sendiri. Hal ini akan membantu orang lain yang baru mulai menggunakan Skrip ekspresi.


Struktur

Bagian pertama artikel ini menjelaskan kegunaan ekspresi dan di mana menemukan/menambahkan ekspresi. Bagian kedua menyajikan contoh cara menggunakan ekspresi.


Kategori ekspresi

LimeSurvey menggunakan ekspresi untuk tujuan berikut:


Relevansi

Tujuan: Menyembunyikan grup pertanyaan/pertanyaan

Relevansi mengontrol apakah sebuah grup pertanyaan atau pertanyaan ditampilkan atau disembunyikan. Jika hasil ekspresi adalah "true" (yaitu 1), elemen akan ditampilkan. Jika tidak (jika hasil ekspresi adalah "false" (yaitu 0)), elemen akan disembunyikan.

Jenis Menampilkan/menyembunyikan Lokasi Tangkapan layar
Relevansi grup pertanyaan grup pertanyaan Buat/Edit grup pertanyaan -> "Persamaan yang berhubungan:"
Relevansi pertanyaan pertanyaan Buat/Edit pertanyaan -> "Persamaan yang berhubungan:"
Relevansi subpertanyaan subpertanyaan Edit subpertanyaan -> "Persamaan yang berhubungan:"


Validasi

Tujuan: Memvalidasi input/tindakan pada pertanyaan/subpertanyaan/jawaban

Validasi mengontrol apakah input responden pada sebuah pertanyaan atau tindakan valid atau tidak. Jika hasil ekspresi adalah "true" (yaitu 1), kelas "good" akan diterapkan pada elemen dan pesan validasi. Jika hasil ekspresi adalah "false" (yaitu 0)), kelas "error" akan diterapkan pada elemen dan pesan validasi. Anda dapat mendeklarasikan gaya untuk kelas-kelas ini di template.css.

Jenis Memvalidasi Lokasi Tangkapan layar
Validasi pertanyaan pertanyaan Buat/Edit pertanyaan -> "Tab Logika" -> "Persamaan validasi pertanyaan"
Validasi subpertanyaan subpertanyaan Buat/Edit pertanyaan -> "Tab Logika" -> "Persamaan validasi subpertanyaan" ‎

Keluaran teks

Tujuan: (Melakukan sesuatu) dan menuliskan teks

Ekspresi dapat digunakan untuk menuliskan teks. Misalnya, Anda dapat menguji atau menghitung sesuatu dan menentukan keluaran berdasarkan hasil pengujian atau perhitungan tersebut. Ekspresi juga dapat digunakan untuk menyisipkan teks pertanyaan, jawaban, jenis pertanyaan, ... dari pertanyaan yang digunakan sebelum ekspresi tersebut. Keluaran teks dapat digunakan di mana pun teks ditampilkan dan dapat mengembalikan berbagai jenis hasil.

Kasus penggunaan Deskripsi
Penyesuaian mikro Menyesuaikan teks, misalnya menulis "Bapak" atau "Ibu" tergantung pada pertanyaan jenis kelamin yang diajukan sebelumnya
Perhitungan Menghitung nilai dan menuliskannya, misalnya "Pendapatan keluarga Anda adalah xxx"
Referensi Menyisipkan teks dari sebuah elemen, misalnya "Nama Anda adalah xxx. Berapa usia Anda?"


Penyimpanan jawaban

Tujuan: (Melakukan sesuatu,) (menuliskan teks) dan menyimpan sesuatu di basis data

Jenis pertanyaan Persamaan dapat digunakan untuk menyimpan sesuatu di basis data. Anda dapat melakukan sesuatu dengan ekspresi, menampilkan pertanyaan Persamaan (yang mirip dengan tampilan teks) dan menyimpan hasil ekspresi di basis data. Jawaban disimpan ke tabel respons. Kemudian, hasilnya dapat digunakan dalam fitur statistik atau diimpor ke salah satu format yang disediakan oleh fungsi ekspor LimeSurvey.

Contoh ekspresi

Menyisipkan jawaban dari pertanyaan sebelumnya

Tujuan Menyisipkan jawaban dari pertanyaan sebelumnya
Jenis Referensi
Contoh Pertanyaan satu (kode pertanyaan "Q00"): Di kota mana Anda tinggal?
Pertanyaan dua (kode pertanyaan "Q01") Sudah berapa lama Anda tinggal di KOTA?
Yang harus dilakukan: Jawaban dari pertanyaan satu harus digunakan menggantikan "KOTA" pada pertanyaan kedua.
Ekspresi {QOO}
Deskripsi Jawaban yang diberikan pada Q00 menggantikan field Q00 pada pertanyaan kedua
Langkah Buat/Edit pertanyaan dua
Masukkan "Sudah berapa lama Anda tinggal di {QOO} (tahun)?" ke dalam field teks pertanyaan

Menggunakan pertanyaan persamaan tersembunyi untuk mengisi jawaban secara otomatis

Masalah: Bayangkan Anda memiliki dua pertanyaan, Q1 dan Q2. Q1 menanyakan usia responden. Q2 membagi responden menjadi tiga kelompok: usia di bawah 20 tahun, usia 20 tahun, usia lebih besar dari 20 tahun. Jadi, Q2 harus menggunakan nilai "1", "2", "3", yang sesuai dengan kondisi di atas. Selain itu, jangan lupa menyembunyikan Q2 (pertanyaan tidak akan ditampilkan dalam survei, tetapi nilainya tetap tersimpan melalui "proses latar belakang" di tabel respons).

Untuk mengisi basis data menggunakan jenis pertanyaan Persamaan:

  • Pertama, buat pertanyaan dengan kode Q1 sebagai pertanyaan Input numerik.
  • Lalu buat pertanyaan lain dengan kode Q2 sebagai pertanyaan persamaan.
  • Pada bagian tab "Pengaturan tampilan" untuk Q2:
    • atur field "Selalu sembunyikan pertanyaan ini" menjadi "Aktif"
    • ketik ekspresi berikut pada field "Persamaan":
{if(Q1.NAOK < 20, "1", if(Q1.NAOK > 20, "3", "2"))}

Membuat halaman ringkasan menggunakan placeholder

Tutorial ini menunjukkan cara membuat ikhtisar di akhir survei, yang mencantumkan semua pertanyaan dan jawaban melalui placeholder ExpressionScript. Tutorial ini juga menunjukkan cara membatasi ikhtisar tersebut hanya pada pertanyaan yang telah dijawab.

Contoh kami dapat diunduh di sini: Contoh survei placeholder survei.


Tipe pertanyaan yang digunakan di sini:

1. Pertanyaan pilihan tunggal / pertanyaan teks/numerik tunggal

  • Daftar (Tarik-turun)
  • Daftar (Pilihan) [L]
  • Ya/Tidak [Y]
  • Teks bebas panjang [T]
  • Teks bebas singkat [S]
  • Input numerik [N]
  • Persamaan [*]


2. Pertanyaan dengan subpertanyaan

  • Beberapa teks pendek [Q]
  • Pilihan ganda [M]
  • Larik [F]
  • Larik (Ya/Tidak/Ragu) [C]
  • Larik (pilihan 10 poin) [B]


3. Pertanyaan dengan 2 skala

  • Larik dua skala [1]


4. Pertanyaan dengan skala X dan Y

  • Larik (Angka) [:]


5. Pertanyaan khusus

  • Tampilan teks [X]


Dalam contoh sederhana ini, ringkasan kami akan berupa daftar sederhana dengan format:

- Teks pertanyaan: Jawaban pengguna


Pertanyaan pilihan tunggal / pertanyaan teks/numerik tunggal

Untuk semua tipe pertanyaan berikut, LimeSurvey akan menyimpan satu tanggapan:

  • Daftar (Tarik-turun)
  • Daftar (Pilihan)
  • Daftar dengan komentar
  • Pilihan 5 poin
  • Ya/Tidak
  • Teks bebas singkat
  • Teks bebas panjang
  • Teks bebas besar
  • Input numerik
  • Persamaan
  • Tanggal
  • Jenis kelamin

Dengan asumsi kode pertanyaan dari pertanyaan tersebut adalah q1, kita dapat merujuk teks pertanyaan dan jawabannya menggunakan:

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

Contoh:

- Berapa usia Anda?: 25


Jika Anda ingin memeriksa apakah pertanyaan tersebut sudah dijawab, Anda dapat menambahkan pernyataan IF pada keluaran Anda:

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

Ini "diterjemahkan" sebagai: JIKA pertanyaan dengan kode q1 tidak kosong, keluarkan "- " DAN teks pertanyaan DAN ": " DAN teks jawaban (fungsi join() menggabungkan elemen menjadi string baru); JIKA TIDAK: tidak mengeluarkan apa pun ("" berarti string kosong).

Pertanyaan dengan subpertanyaan

Untuk semua tipe pertanyaan berikut, LimeSurvey menggunakan subpertanyaan:

  • Beberapa teks pendek
  • Pilihan ganda
  • Pilihan ganda dengan komentar
  • Larik
  • Larik (pilihan 5 poin)
  • Larik (pilihan 10 poin)
  • Larik (Ya/Tidak/Ragu)
  • Larik (Meningkat/Sama/Menurun)
  • Larik menurut kolom

Dengan asumsi kode pertanyaan dari pertanyaan tersebut adalah q2 dan subpertanyaan diberi nomor SQ001, SQ002, (penomoran otomatis oleh LimeSurvey), kita dapat merujuk teks pertanyaan dan jawabannya menggunakan:

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

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

Untuk pertanyaan pilihan ganda, sebaiknya jangan menampilkan teks subpertanyaan yang dicentang, melainkan menampilkan Y untuk setiap opsi yang dipilih:

- {q2_SQ001.question}: {q2_SQ001}

- {q2_SQ002.question}: {q2_SQ002}

...

Perlu diperhatikan bahwa saat ini belum memungkinkan untuk menampilkan teks pertanyaan dari pertanyaan dengan subpertanyaan, lihat permintaan fitur ini.


Contoh 1 (dengan asumsi jenis pertanyaan adalah pilihan ganda)

- Apakah Anda mengenal merek-merek mobil ini?

-- Mercedes: Y

-- Audi: N

-- Volvo: Y


Jika Anda hanya ingin menampilkan item yang dicentang, Anda dapat menambahkan pernyataan IF pada output Anda dan memeriksa nilai kotak centang:

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


Gunakan fungsi listifop jika Anda ingin menampilkan daftar item yang dipilih saja, misalnya: Mercedes, Volvo

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


Di sini  that.q2  diperluas menjadi semua subpertanyaan dari q2. Lihat self, this, dan that untuk detail lebih lanjut.


Contoh 2 (dengan asumsi jenis pertanyaan adalah Larik (pilihan 10 poin))

- Silakan nilai kualitas merek-merek mobil di bawah ini dengan skala 1=sangat buruk hingga 10=sangat baik?

-- Mercedes: 7

-- Audi: 9

-- Volvo: 9


Jika Anda hanya ingin menampilkan item yang telah dinilai, Anda dapat menambahkan pernyataan IF pada output Anda dan memeriksa apakah subpertanyaan saat ini telah dijawab dengan menggunakan:

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


Gunakan fungsi listifop jika, misalnya, Anda hanya ingin menampilkan daftar item terpilih yang nilainya lebih besar dari delapan, misalnya: Audi / Volvo

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


Pertanyaan dengan dua skala

Ini hanya berlaku untuk jenis pertanyaan skala ganda.


Anggaplah kode-kode berikut digunakan:

  • Kode pertanyaan: q4
  • Kode subpertanyaan: SQ001, SQ002, ...
  • Kode jawaban skala 1: A1, A2, ...
  • Kode jawaban skala 2: B1, B2, ...


Untuk merujuk ke hasil subpertanyaan tertentu pada skala tertentu, Anda perlu menggunakan QuestionCode . '_' . SubQuestionCode . '_' . ScaleID. Perhatikan bahwa "ScaleID" bernilai 0 untuk skala pertama dan 1 untuk skala lainnya!
Contoh untuk merujuk ke jawaban subpertanyaan ketiga dan skala kedua: q4_SQ003_1 - Pertanyaan 4, subpertanyaan 3, skala kedua.


Mari kita tampilkan hasil untuk kedua skala dan dua subpertanyaan pertama:

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

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

Untuk menampilkan teks subpertanyaan, Anda perlu menambahkan ID skala ke placeholder (meskipun teksnya sama untuk kedua skala). Jadi, alih-alih {q4_SQ001.question}, kita harus menggunakan {q4_SQ001_0.question} atau {q4_SQ001_1.question}.

Jika Anda hanya ingin mengekspor/menampilkan hasil subpertanyaan yang memiliki setidaknya satu jawaban, gunakan sintaks ini untuk setiap subpertanyaan:

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

Pertanyaan dengan skala X dan Y

Ini berlaku untuk semua pertanyaan matriks yang memungkinkan jawaban untuk setiap sel (bukan hanya setiap baris seperti yang ditunjukkan sebelumnya):

  • Larik Teks
  • Larik Angka


Kode yang diasumsikan digunakan:

  • Kode pertanyaan: q5
  • Kode subpertanyaan: SQ001, SQ002, ...
  • Kode jawaban: A1, A2, ...

Untuk merujuk ke hasil subpertanyaan tertentu dari kolom tertentu, Anda perlu menggunakan QuestionCode . '_' . SubQuestionCode . '_' . AnswerCode. Contoh untuk merujuk ke jawaban subpertanyaan ketiga dan kolom kedua: q5_SQ003_A2.

Mari kita tampilkan hasil untuk kolom 1-3 dari dua subpertanyaan pertama:

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


Karena pada jenis pertanyaan ini setiap sel (kombinasi sumbu X dan sumbu Y) setara dengan satu opsi jawaban, pengecekan data yang ada perlu dilakukan untuk setiap sel. Contoh:

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


Untuk menampilkan teks subpertanyaan, Anda perlu menambahkan kode jawaban ke placeholder (meskipun teksnya sama untuk semua opsi jawaban). Jadi, sebagai ganti {q5_SQ001.question}, kita harus menggunakan {q5_SQ001_A1.question} atau {q5_SQ001_A2.question}.

Sembunyikan pertanyaan jika jawaban dari pertanyaan sebelumnya kosong

Tujuan Sembunyikan pertanyaan jika jawaban dari pertanyaan sebelumnya kosong
Jenis Relevansi pertanyaan
Contoh Pertanyaan satu: kode pertanyaan "name", teks pertanyaan "Siapa nama Anda?"
Pertanyaan dua: teks pertanyaan "{name}, berapa usia Anda?"
Yang harus dilakukan: Sembunyikan pertanyaan dua jika kolom teks pada pertanyaan satu kosong
Ekspresi !is_empty(name)
Deskripsi is_empty() menentukan apakah sebuah variabel dianggap kosong. Tanda "!" membalikkan hasilnya. Jadi, jika variabel tidak kosong, ekspresi akan bernilai benar dan pertanyaan ditampilkan
Langkah Buat/edit pertanyaan dua
Masukkan "!is_empty(name)" ke dalam "Persamaan yang berhubungan"
File contoh Hide_question_if_empty_question_group.zip


Sembunyikan grup pertanyaan jika jawaban dari pertanyaan sebelumnya adalah Ya atau Tidak

Tujuan Sembunyikan grup pertanyaan jika jawaban dari pertanyaan sebelumnya adalah Ya atau Tidak
Jenis Relevansi grup pertanyaan
Contoh Halaman satu, Grup pertanyaan satu, Pertanyaan satu: kode pertanyaan "PET", teks pertanyaan "Apakah Anda memiliki hewan peliharaan?" -Ya -Tidak
Halaman dua, Grup pertanyaan dua: Judul "Tentang hewan peliharaan Anda"
Yang harus dilakukan: Tampilkan/sembunyikan grup pertanyaan dua jika jawaban dari pertanyaan satu adalah Ya/Tidak
Ekspresi PET == "Y"
Deskripsi PET adalah kode pertanyaan untuk pertanyaan yang jawabannya ingin Anda periksa. Jika Anda tidak menggunakan sufiks, EM akan menggunakan "Qcode.code". Jadi, Anda membandingkan kode jawaban dari pertanyaan PET dengan nilai "Y". Jika peserta menjawab "Ya", ekspresi bernilai benar dan grup pertanyaan "Tentang hewan peliharaan Anda" akan ditampilkan.
Langkah Buat/edit grup pertanyaan dua
Masukkan "PET == "Y"" ke dalam "Persamaan yang berhubungan"
File contoh Hide_question group_if_answer_from_previous_question_is_Yes_or_No.zip


Tampilkan nilai dari kolom pertanyaan input dengan banyak jawaban

Tujuan Tampilkan nilai dari kolom pertanyaan input dengan banyak jawaban
Jenis Referensi
Contoh Pertanyaan satu: kode pertanyaan "AskChildAge", teks pertanyaan "Berapa usia anak-anak Anda?". Kode subpertanyaan -Child1 -Child2 -Child3 - ChildXXX
Pertanyaan dua: kode pertanyaan "ReportChildAge" teks pertanyaan "Tentang anak pertama Anda: - CHILD1 berusia AGE1."
Ekspresi {AskChildAge_Child1.question}, {AskChildAge_Child1.value}
Deskripsi Anda ingin menggunakan nilai sebuah subpertanyaan pada pertanyaan berikutnya. Anda dapat mengakses nilai subpertanyaan dengan ekspresi seperti ini: QcodeQuestion_QcodeSubquestion.value
Langkah Buat/edit pertanyaan kedua
Masukkan teks ini pada deskripsi: "Tentang anak pertama Anda: - {AskChildAge_Child1.question} berusia {AskChildAge_Child1.value}."
File contoh Display_value_of_a_multiple_answer_input_question_field.zip

Validasi jumlah kotak yang dicentang per baris untuk pertanyaan "Larik (Angka) Kotak centang"

Tujuan Validasi jumlah kotak yang dicentang per baris
Jenis Validasi
Contoh Pertanyaan dengan jenis "Larik Angka (Tata letak kotak centang)"
Ekspresi sum(...)
Deskripsi (sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= X) menentukan apakah setidaknya X kotak centang pada baris A dicentang.
Jika Anda ingin memeriksa ketiga baris (A, B, C), Anda dapat menggabungkan ekspresi menggunakan "&&":
(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)
Langkah Buat/edit pertanyaan dengan jenis "Larik Angka (Tata letak kotak centang)".
Masukkan ekspresi di atas ke dalam "Persamaan validasi pertanyaan" pada pengaturan pertanyaan lanjutan (Anda mungkin perlu menyesuaikan penamaan variabel!).
File contoh Validate number of boxes ticker per row for an Array (Numbers) Checkbox.lss

Hitung selisih antara dua tanggal

Tujuan Hitung selisih antara dua tanggal
Jenis Relevansi / Jenis pertanyaan persamaan / Validasi
Contoh Pertanyaan satu (tanggal/waktu, kode: DOB): Kapan tanggal lahir Anda?
Pertanyaan dua (tanggal/waktu, kode: datetoday): Tanggal berapa hari ini?
Pertanyaan tiga (boilerplate): Usia Anda XXXX hari.
Yang harus dilakukan: Hitung dan tampilkan jumlah hari antara tanggal yang diberikan pada pertanyaan 1 dan pertanyaan 2.
Ekspresi {(strtotime(datetoday)-strtotime(DOB))/60/60/24}
Deskripsi strtotime menghitung jumlah detik antara 1 Januari 1970 dan tanggal yang diberikan. Ekspresi di atas menghitung jumlah detik antara dua tanggal yang diberikan. Suku "/60/60/24" hanya mengubah jumlah detik menjadi jumlah hari.
Alih-alih menanyakan "datetoday", Anda juga dapat menggunakan strtotime('now') atau cukup time(), yang langsung mengembalikan jumlah detik dari Januari 1970 hingga sekarang (yaitu waktu survei diisi). Dengan demikian Anda dapat dengan cepat mengetahui usia seseorang dalam tahun dengan persamaan {(time() - strtotime(DOB)) / 60 / 60 / 24 / 365.25} Dalam semua kasus ini, sangat penting bahwa tanggal dimasukkan dalam format yang benar, jika tidak fungsi strtotime() tidak akan bekerja dengan benar.
Langkah Buat dua pertanyaan tanggal (untuk tanggal lahir dan untuk tanggal hari ini) dan satu pertanyaan boilerplate.
Pada teks pertanyaan dari pertanyaan boilerplate, masukkan: "Pada {datetoday} usia Anda {(strtotime(today)-strtotime(dob))/60/60/24} hari."

Harap perhatikan: Fungsi strtotime dapat bekerja dengan BANYAK, tetapi tidak semua, format tanggal. Jika Anda mengalami masalah, atur format tanggal survei Anda ke mm/dd/yyyy atau yyyy-mm-dd atau dd.mm.yyyy"
File contoh Date_difference.zip

Menggunakan ExpressionScript untuk Penilaian

Berikut contoh lain tentang cara menggunakan ExpressionScript dengan pertanyaan jenis larik dan penilaian:</ br>

Misalkan Anda memiliki 2 pertanyaan larik dan Anda ingin menyimpan hasil perhitungan ke basis data Anda. Caranya sebenarnya mudah: Anda perlu membuat dan menguji larik Anda, lalu mengirim tanggapan percobaan untuk melihat apakah berfungsi dan memberikan hasilnya di halaman selesai.


Detail implementasi:

  • tambahkan pertanyaan dengan jenis persamaan
  • tambahkan baris berikut dengan asumsi Q1 adalah kode pertanyaan larik Anda, sedangkan Q2 adalah yang kedua:
    • {sum(Q1_SQ001.value,Q2_SQ001.value)}

Perlu diingat bahwa SQ001 adalah kode default untuk setiap subpertanyaan. Jika Anda mengubah kode subpertanyaan, sesuaikan persamaan di atas.


Menggunakan em_validation_q pada larik

Anda dapat menggunakan persamaan validasi pertanyaan untuk mengendalikan larik dengan kondisi apa pun.


Detail implementasi:

  • untuk larik pertama : larik pilihan tunggal
    • Kode pertanyaan adalah ARRAY
    • Kode subpertanyaan adalah SQ01,SQ02,SQ03 dan SQ04
    • perbarui Persamaan validasi pertanyaan keseluruhan dan masukkan
      !is_empty(ARRAY_SQ01) and !is_empty(ARRAY_SQ03) 
  • untuk larik kedua : larik teks
    • Kode pertanyaan adalah ARRAYTEXT
    • Kode subpertanyaan pada sumbu Y adalah SY01,SY02,SY03, dan SY04
    • Perbarui Persamaan validasi pertanyaan keseluruhan dan masukkan
      count(self.sq_SY01 >= 1) and count(self.sq_SY03 >= 3)