Actions

Check survey logic - Advanced/ja: Difference between revisions

From LimeSurvey Manual

(Created page with "==不正な構文==")
(Created page with "== ExpressScript構文における色づけ == 条件と式では、見やすくするため構文が強調表示されています。 # 緑 / 水色: アンケート中の先...")
 
(42 intermediate revisions by 2 users not shown)
Line 23: Line 23:
'''アンケートロジックの確認'''から、個々の質問やグループに設定したすべての項目(名前、テキスト、ヘルプ、条件/出現条件、検証ルール、既定値、サブ質問、回答など)が便利な表形式で表示されます。エラーがあればハイライトされ、質問やグループのID(または式の中で使われている変数)をクリックすると、ブラウザのタブが新たに開かれ、編集することができます。これにより、エラーを手早く修正し、アンケートを開始する前に正確性を確認するためのロジックチェックページが更新されます。
'''アンケートロジックの確認'''から、個々の質問やグループに設定したすべての項目(名前、テキスト、ヘルプ、条件/出現条件、検証ルール、既定値、サブ質問、回答など)が便利な表形式で表示されます。エラーがあればハイライトされ、質問やグループのID(または式の中で使われている変数)をクリックすると、ブラウザのタブが新たに開かれ、編集することができます。これにより、エラーを手早く修正し、アンケートを開始する前に正確性を確認するためのロジックチェックページが更新されます。


The display is also designed to be be readable by researchers and study sponsors so that they can validate the accuracy of the survey design and logic. Checking the survey logic updates the cache for all expressions used within an active survey.
表示画面は、アンケートの設計とロジックが正しいかについてアンケート実施者や依頼者が確認できるようにできています。アンケートロジックを確認すると、実施中のアンケートのすべての式のキャッシュが更新されます。


以下の列があります。
以下の列があります。
Line 35: Line 35:




*'''Relevance <nowiki>[</nowiki>Validation] (Default)''' - shows the following:
*'''出現条件 <nowiki>[</nowiki>検証](デフォルト値)''' - 以下のとおり表示されます。
**''Relevance'' - the syntax-highlighted [[ExpressionScript - Presentation|relevance equation]] for the question or group. If it is always true (to be shown in any scenario), the value will be '''1'''.
**''出現条件'' - 質問またはグループについて[[ExpressionScript - Presentation/ja|出現条件式]]が構文ハイライト表示されます。常に真(いかなるシナリオでも表示)である場合、値は'''1'''となります。
**''Validation'' - ExpressionScript automatically generates the [[ExpressionScript_Engine_-_Quick_start_guide#Validation|validation equation]] based upon the selected question attributes (e.g., min/max number of answers, min/max/equals sum values, min/max individual values or regular expression validation). This section shows the generated validation equation so that you can detect if there are any errors (such as undefined variables).
**''検証'' - ExpressionScriptは選択された質問属性に基づいて[[ExpressionScript_Engine_-_Quick_start_guide/ja#.E6.A4.9C.E8.A8.BC|検証式]]を自動生成します(例:回答の最小値/最大値、合計値の最小値/最大値/一致、個々の値の最小値/最大値、正規表現による検証)。このセクションには、エラー(未定義の変数など)の有無を検出できるよう、生成された検証式が表示されます。
***Question-level validation shows the equation needed to verify the above-described question attributes
***質問レベルの検証では、上述の質問属性を検証するために必要な式が表示されます。
***Subquestion-level validation shows the equation needed to implement [[QS:Array_filter|array_filter]], [[QS:Array_filter_exclude|array_filter_exclude]], and [[QS:Exclusive_option|exclusive_option]]
***サブ質問レベルの検証では、[[QS:Array_filter/ja|array_filter]][[QS:Array_filter_exclude/ja|array_filter_exclude]][[QS:Exclusive_option|exclusive_option]]の実装に必要な式が表示されます。
**''Default'' - if the question has a default value, it is shown here, syntax-highlighted (since the default could be an expression).
**''既定値'' - 質問に既定値がある場合、ここに構文ハイライト付きで表示されます(既定値が式であることもあるため)。


*'''Text <nowiki>[</nowiki>Help] (Tip)''' - shows the following:
*'''テキスト<nowiki>[</nowiki>ヘルプ](Tip)''' - 以下のとおり表示されます。
**''Text'' - the text of the group, question, subquestion, or answer. It is syntax-highlighted to show any embedded [[ExpressionScript - Presentation#Tailoring.2FPiping|tailoring]], thus letting you verify that you have declared all the variables you plan to use in the tailoring.
**''テキスト'' - グループ、質問、サブ質問、回答のテキスト。[[ExpressionScript - Presentation/ja#.E6.96.87.E8.A8.80.E8.AA.BF.E6.95.B4.EF.BC.8F.E3.83.91.E3.82.A4.E3.83.97|文言調整]]されていることを示すため、構文ハイライト表示されており、文言調整で使用するすべての変数が宣言されていることを確認することができます。
**''Help'' - this shows the help text for the question, also syntax-highlighted.
**''ヘルプ'' - 質問に対するヘルプを示しており、構文ハイライトされています。
**''Tip'' - this shows the internally generated validation tip, based upon the question attributes. This same tip is used in all survey styles, plus in the printable survey and data entry screens.
**''Tip'' - これは質問属性に基づいて内部的に生成された検証ヒントです。これと同じものがすべてのアンケートスタイル、印刷可能なアンケート、データ入力画面で使われます。
**''Question Attributes'' - this shows a table of all relevant question attributes for this question. Attributes that might be equations are syntax-highlighted so that you can validate their accuracy.
**''質問属性'' - この質問に関連する質問属性の表です。属性が式の場合は正確性を検証するため構文ハイライト表示されます。


行は以下のルールによって色づけされています。
行は以下のルールによって色づけされています。
Line 54: Line 54:
*'''回答''' - 背景が白
*'''回答''' - 背景が白


Answers have an additional attribute in the '''Relevance''' column:
回答には、'''出現条件'''欄に追加の属性が表示されます。
*'''Value''' - this is the default internal value used by calculations. If you are using [[Assessments]], this will be the assessment value. Otherwise, this will be the same as the answer name.
*'''''' - 計算で使用する内部の既定値です。[[Assessments/ja|評価]]機能を使う場合は評価値となります。それ以外の場合では、回答の名前と同一になります。




{{Note|The survey description, welcome and end messages, end URL, Survey data policy notice and label are listed within the Cgeck survey Logic (above the table) if their corresponding fields are not empty!}}
{{Note|対応するフィールドが空でない場合、アンケートの説明、ようこそメッセージ、終了メッセージ、完了URL、アンケートデータポリシーの通知、ラベルは、アンケートロジック確認(表の上)に表示されます。}}


=使い方=
=使い方=




At the top of the page, there is a summary message. If all is well, it will say "No syntax errors detected in this survey", or "This group" or "This question", "by itself, does not contain any syntax errors". If the opposite is true, it will say "X questions have syntax errors that need to be corrected".
ページ上部にサマリーメッセージが表示されます。何も問題ない場合は、"このアンケートで検出された構文エラーはありません。""このグループ"あるいは"この質問"には"構文エラーが含まれていません。"となっています。エラーがあれば、"X個の質問に修正する必要のあるエラーがあります。"となります。


Each question that has syntax errors gets the background of its leftmost column (i.e. '''#''') color-coded red. Also, a warning stating the number of minimum errors of a question will be displayed under the '''Name [ID]''' column. The following errors are common:
構文エラーのある質問は左端の列('''#''')の背景が赤く色分けされます。また、質問に含まれる最小のエラー数を示す警告が'''名前[ID]'''欄に表示されます。以下のエラーが一般的です。


*[[Check survey logic - Advanced#Undefined variable|Undefined variable]] - if you have not defined all of your variables, or mistyped array_filter (or different sets of answer options for array_filter), then some of your validation questions will show errors. Undefined variables are shown in red text, boxed with a red line.
*[[Check survey logic - Advanced/ja#.E6.9C.AA.E5.AE.9A.E7.BE.A9.E3.81.AE.E5.A4.89.E6.95.B0|未定義の変数]] - 変数すべてを定義していない場合、またはarray_filter(またはarray_filterの回答オプションのセット)に誤記がある場合、検証質問にエラーが表示されることがあります。未定義の変数は赤色のテキストで示され、赤色の線で囲まれています。


*[[Check survey logic - Advanced#Bad syntax|Bad syntax]] - as you start to use relevance equations, you may use too many or too few parentheses. Such syntax problems are highlighted and boxed in red. If you hover the mouse over any such red-boxed text, a tool-tip will describe the error.
*[[Check survey logic - Advanced/ja#.E4.B8.8D.E6.AD.A3.E3.81.AA.E6.A7.8B.E6.96.87|不正な構文]] - 出現条件の式を使い始めると、括弧が多すぎたり少なすぎたりすることがあります。このような構文の問題は、赤色でハイライトされ、枠で囲まれて表示されます。このような赤色のボックスのテキストの上にマウスを置くと、ツールチップにエラーが表示されます。
 
== ExpressScript構文における色づけ ==
条件と式では、見やすくするため構文が強調表示されています。
# 緑 / 水色: アンケート中の先行する質問を参照する変数
# 青: 関数
# 灰色: 文字列式
# 茶色: TOKEN式(参加者データ)
# 黒: 演算子
チェック項目:
# 紫: アンケート中の後続の質問を参照する変数。通常、これはエラーであり、確認する必要があります。
# 赤または赤枠: 存在しない変数、存在しない先行質問の参照、構文エラーであり、確認する必要があります。




Line 75: Line 86:




If undefined variables are used, the respective variable name will be color-coded in red and surrounded by a red line. If you hover your mouse over the variable name, it will say "undefined variable":
未定義の変数が使用されている場合、それぞれの変数名は赤で色分けされ、赤い線で囲まれています。変数名の上にマウスを置くと、"未定義の変数"と表示されます。




Line 89: Line 100:




Most of the expression-related mistakes are related to bad syntax. This is related to the fact that survey administrators usually miss to add a curly bracket, to properly make use of parentheses, or they use expressions wrongly:
式にまつわる間違いのほとんどは、誤った構文に関連しています。これは、アンケート管理者は、しばしば中括弧を追加しわすれたり、正しい括弧の使用しなかったり、間違って式を使用したりするためです。




Line 97: Line 108:




Here are many good examples on the usage of [[ExpressionScript How-tos#Syntax_Highlighting|syntax highlighting]].
[[ExpressionScript How-tos/ja#.E6.A7.8B.E6.96.87.E5.BC.B7.E8.AA.BF.E8.A1.A8.E7.A4.BA|構文ハイライト]]の使用例を示します。




===Bad custom JavaScript===
==エラーを含むカスタムJavaScript==




The JavaScript errors will also be highlighted in the survey logic check:
JavaScriptのエラーもアンケートロジック確認でも強調表示されます。




<center>[[File:javascript_error.jpg]]</center>
<center>[[File:javascript_error.jpg]]</center>


 
=編集と検証を手早く行う=
=Speeding editing and validation=




All of the syntax-highlighted text has tooltips embedded, which are clickable:
構文ハイライトされたテキストにはすべてツールチップが埋め込まれており、クリックすることができます。
#Tooltips
#ツールチップ
#*Functions - hovering the mouse lets you see the purpose and syntax definition of the function;
#*関数 - マウスの上にカーソルを置くと、関数の目的と構文の定義を見ることができます。
#*Variable Names - hovering the mouse lets you see the position (group, question sequence), question text, and allowable answers for the question.
#*変数名 - マウスの上にカーソルを置くと、場所(グループ、質問、サブ質問)、質問のテキスト、質問に対して許容される回答が表示されます。
#Actions
#アクション
#*Variable Names - clicking on the variable name opens a new window that allows you to edit the question. This makes it easy to navigate and verify logic - simply keep clicking on variable names of relevance or validation criteria for the question to see where they come from and how they are used.
#*変数名 - 変数名をクリックすると新しいウィンドウが開き、質問を編集することができます。これによりロジックを簡単に確認・検証することができます。具体的には、質問の出現条件や検証基準の中の変数名をクリックすることにより、それらがどこからきてどのように使用されているかを確認することができます。




=Examples=
==




The following examples are taken from the [[ExpressionScript sample surveys|ExpressionScript sample surveys]]. You can find screenshots of running surveys, explanations, and downloads on that page.
次の例は、[[ExpressionScript sample surveys/ja|ExpressionScriptサンプルアンケート]]から取得したものです。アンケート、説明、ダウンロードのスクリーンショットがあります。




==Body Mass Index==
==ボディー・マス・インデックス==




Here are [[ExpressionScript sample surveys#Screenshots|screenshots]] of this example.
本例の[[ExpressionScript sample surveys/ja#.E3.82.B9.E3.82.AF.E3.83.AA.E3.83.BC.E3.83.B3.E3.82.B7.E3.83.A7.E3.83.83.E3.83.88|スクリーンショット]]です。


This is the question-reorder view of the Body Mass Index calculation. You can see the relevance equations for weight, height, and BMI under the ''Question'' column:
これは、質問で並べ替えた体格指数(BMI)計算のビューです。体重、身長、BMIの出現条件式は、''質問''列に表示されます。




Line 137: Line 147:




For a better survey overview, check the survey logic page:
アンケートの概要については、アンケートロジックのページを確認してください。




Line 143: Line 153:




This survey example is also a good example of nested if() statements to generate the "weightstatus".
このアンケート例は、"weightstatus"を生成するためのネストされたif()ステートメントの良い例でもあります。




<center>[[File:BMI_logic2.jpg]]</center>
<center>[[File:BMI_logic2.jpg]]</center>


==Cascading logic==
==ロジックのカスケード==




Here are [[ExpressionScript sample surveys#Cascading Array Filters|screenshots]] of this example.
本例の[[ExpressionScript sample surveys/ja#.E9.85.8D.E5.88.97.E3.83.95.E3.82.A3.E3.83.AB.E3.82.BF.E3.83.BC.E3.81.AE.E5.85.A5.E3.82.8C.E5.AD.90|スクリーンショット]]です。


It shows the subquestion validation logic that is automatically generated when you use [[QS:Array_filter|array_filter]] and [[QS:Array_filter_exclude|array_filter_exclude]]. This example also shows how you can substitute the tailored "Other" value (the answer for Q02_other is Q01_other).
この例は、[[QS:Array_filter/ja|array_filter]]および[[QS:Array_filter_exclude/ja|array_filter_exclude]]を使用すると自動的に生成されるサブ質問の検証ロジックを示しています。この例は、"その他"の値をどのように置き換えることができるか(Q02_otherの回答はQ01_otherとする)も示しています。




Line 159: Line 169:




Q05 in this example shows simultaneous use of array_filter and array_filter_exclude on Q01 and Q02, respectively. This example demonstrates cascading array_filter capabilities. Note that one of the main reasons for showing the question and subquestion level '''validation''' criteria is to help ensure you have not made any typos in specifying the array_filter or array_filter_exclude variable names (or in case you use different variable names for your list of filtered subquestions). If you have such typos, all the invalid variable names will appear in red indicating that they are undefined, letting you quickly fix the problem.
Q05は、Q01とQ02でarray_filterとarray_filter_excludeをそれぞれ同時に使用する例です。この例は、array_filterの機能をカスケードすることを示しています。質問とサブ質問レベルの'''検証'''基準を示す主な理由は、array_filterまたはarray_filter_excludeの変数名を指定する際に(またはフィルタリングされたサブ質問のリストに異なる変数名を使用している場合に)タイプミスをしていないことを確実にするためです。このようなタイプミスがあった場合、無効な変数名はすべて未定義であることを示す赤で表示され、すぐに問題を修正することができます。




Line 165: Line 175:




==Dynamic relevance==
==動的な出現条件==




This example demonstrates dynamic cascading relevance logic to control display of question visibility. You can download this example [[ExpressionScript sample surveys#Download|here]].
これは、質問の表示・非表示を制御する"出現条件"の動的でカスケーディングされたロジックの例を示しています。この例は[[ExpressionScript sample surveys/ja#.E3.83.80.E3.82.A6.E3.83.B3.E3.83.AD.E3.83.BC.E3.83.89|ここから]]ダウンロードできます。


Also note that questions are displayed only if certain validation criteria are met. For example, if a person states that she has 2 kids, certain questions have to be filled in by the respondent (kid1 and kid2).
また、特定の検証基準を満たしている場合にのみ質問が表示されることにも注意してください。例えば、ある人が「子供が2人いる」と回答したときに特定の質問に回答しなければならない場合などです(kid1とkid2)。




<center>[[File:dynamic_relevance_logic1.jpg]]</center>
<center>[[File:dynamic_relevance_logic1.jpg]]</center>


==Group-level relevance==
==グループレベルの出現条件==




This example shows how group-level relevance appears in the logic check. Here are [[ExpressionScript sample surveys#Sample Census|screenshots]] of the example described below.
この例では、ロジックファイルにグループレベルの出現条件がどのように表示されるかを示します。以下の例の[[ExpressionScript sample surveys/ja#.E3.82.B5.E3.83.B3.E3.83.97.E3.83.AB.E8.AA.BF.E6.9F.BB|スクリーンショット]]があります。


As you can see, the group-level relevance equation (cohabs > 1 && p1_rel != "") appear in the grey Person 2 row for G-2.
ご覧のように、グループレベルの関連式(cohabs > 1 && p1_rel != "")はG-2の灰色のPerson 2の行に表示されます。


You may also notice that all of the questions are mandatory. However, if the group is irrelevant, so are all its questions. As a result, those questions are only truly mandatory if the group is relevant.
また、すべての質問が必須であることに気付くかもしれません。しかし、グループの出現条件が否であれば、グループに属するすべての質問も否であり、グループが出現条件を満たしていれば、グループ内の質問は回答必須となります。


You may also note that certain questions are displayed only if the answer to the previous question is not empty. You may see below that if p2_sex is not filled in, p2_name is not going to be displayed, even though it is a mandatory questions. The mandatory question p2_age is also not going to be displayed if p2_name is not filled in. These questions can be considered "conditionally mandatory".
先行する質問に対する回答が空でない場合にのみ表示される質問があることに注意してください。 p2_sexが記入されていない場合、必須の質問であっても、p2_nameは表示されません。 p2_nameが記入されていない場合でも、必須質問p2_ageは表示されません。これらの質問は"条件付きで必須"と見なすことができます。


Additionally, note that the '''tip''' messages are also automatically created for you. They are organized by value range (min/max), sum value range (min/max/equals), number of answers (min/max), etc (it depends on the used question type and active attributes). Sometimes you want to validate an answer range but don't want to display what might appear to be silly validation tips to the user. In such cases, you can use the [[QS:Hide_tip|hide_tip]] question option (as in this case, to avoid telling the user that the age must be between 0 and 115 unless they try to enter a bad value - see p2_age).
さらに、'''ヒント'''メッセージも自動的に作成されることに注意してください。値の範囲(最小/最大)、合計値の範囲(最小/最大/一致)、回答数(最小値/最大値)などで構成されています(質問タイプとアクティブな属性に依存)。回答範囲を検証したいものの、とるに足らない検証のヒントをユーザーに表示したくないこともあるでしょう。このような場合、[[QS:Hide_tip/ja|hide_tip]]質問オプションを使用することができます(この例では、ユーザーが年齢として範囲外の値を入力しない限り、その値が0から115の間に制限されていることをユーザーに伝えないようにします。p2_ageを参照してください)。




<center>[[File:person2_logic.jpg]]</center>
<center>[[File:person2_logic.jpg]]</center>


==Comma as radix (decimal) separator==
==小数点としてのカンマ==




Although LimeSurvey fully supports the use of comma as radix (decimal) separator at run-time, you must still use a decimal as the radix separator at the design-time (e.g., when specifying min/max values in advanced question attributes). The working example can be [[ExpressionScript sample surveys#Using Comma as Radix Separator (Decimal Point)|found here]].
LimeSurveyは実行時に小数点の区切り記号としてカンマを使用することが完全にサポートされていますが、設計時(高度な質問属性で最小値・最大値を設定するときなど)には小数点としてドットを使用する必要があることを示す例をここに示します。実際の例が[[ExpressionScript sample surveys/ja#.E3.82.AB.E3.83.B3.E3.83.9E.E3.82.92.E5.B0.8F.E6.95.B0.E7.82.B9.E3.81.A8.E3.81.97.E3.81.A6.E4.BD.BF.E7.94.A8.E3.81.99.E3.82.8B|こちら]]にあります 。


Also, remember that the '''validation''' logic is created for you automatically from the enabled question attributes. The equations may look overwhelming, but you don't need to worry about them.
また、'''検証'''ロジックは有効な質問属性から自動的に作成されることを覚えておいてください。圧倒的な式に驚くかもしれませんが、心配する必要はありません。




<center>[[File:radix_logic1.jpg]]</center>
<center>[[File:radix_logic1.jpg]]</center>

Latest revision as of 01:13, 10 November 2022


概要

複雑なアンケートを作成し、簡単に維持するための重要な機能として、アンケートロジックの確認があります。

アンケートを開始する前の開発やテストの段階で、アンケートのロジックを検証することは非常に重要です。複雑な出現条件式、文言調整、検証式を作成するならなおさらで、アンケートが問題なく実行できるように確認する必要があります。

この機能を使用すると、アンケート、グループ、質問の正確性を素早く検証することができます。アンケート関連設定の下にあるトップバーメニューオプションからアクセスできます。ツールメニューから利用できます。



上図からわかるように、このオプションは、アンケートの中で使用されている言語ごとに4回実行することができます。

説明

アンケートロジックの確認から、個々の質問やグループに設定したすべての項目(名前、テキスト、ヘルプ、条件/出現条件、検証ルール、既定値、サブ質問、回答など)が便利な表形式で表示されます。エラーがあればハイライトされ、質問やグループのID(または式の中で使われている変数)をクリックすると、ブラウザのタブが新たに開かれ、編集することができます。これにより、エラーを手早く修正し、アンケートを開始する前に正確性を確認するためのロジックチェックページが更新されます。

表示画面は、アンケートの設計とロジックが正しいかについてアンケート実施者や依頼者が確認できるようにできています。アンケートロジックを確認すると、実施中のアンケートのすべての式のキャッシュが更新されます。

以下の列があります。

  • # - グループ、質問の順番を示します。番号は0から始まります。
  • 名前 [ID] - グループ/質問/サブ質問のコード。これらのコードは、内の変数として使用できます。IDは、質問ID(QID)またはグループID(GID)です。このフィールドには、質問タイプ(複数選択[M]など)も表示されます。


式内で使用できる変数の詳細については、こちらのウィキサブセクションを参照してください。


  • 出現条件 [検証](デフォルト値) - 以下のとおり表示されます。
    • 出現条件 - 質問またはグループについて出現条件式が構文ハイライト表示されます。常に真(いかなるシナリオでも表示)である場合、値は1となります。
    • 検証 - ExpressionScriptは選択された質問属性に基づいて検証式を自動生成します(例:回答の最小値/最大値、合計値の最小値/最大値/一致、個々の値の最小値/最大値、正規表現による検証)。このセクションには、エラー(未定義の変数など)の有無を検出できるよう、生成された検証式が表示されます。
      • 質問レベルの検証では、上述の質問属性を検証するために必要な式が表示されます。
      • サブ質問レベルの検証では、array_filterarray_filter_excludeexclusive_optionの実装に必要な式が表示されます。
    • 既定値 - 質問に既定値がある場合、ここに構文ハイライト付きで表示されます(既定値が式であることもあるため)。
  • テキスト[ヘルプ](Tip) - 以下のとおり表示されます。
    • テキスト - グループ、質問、サブ質問、回答のテキスト。文言調整されていることを示すため、構文ハイライト表示されており、文言調整で使用するすべての変数が宣言されていることを確認することができます。
    • ヘルプ - 質問に対するヘルプを示しており、構文ハイライトされています。
    • Tip - これは質問属性に基づいて内部的に生成された検証ヒントです。これと同じものがすべてのアンケートスタイル、印刷可能なアンケート、データ入力画面で使われます。
    • 質問属性 - この質問に関連する質問属性の表です。属性が式の場合は正確性を検証するため構文ハイライト表示されます。

行は以下のルールによって色づけされています。

  • グループ - 背景がライトグレー
  • 質問 - 背景がライトグリーン
  • サブ質問 - 背景が淡い黄色
  • 回答 - 背景が白

回答には、出現条件欄に追加の属性が表示されます。

  • - 計算で使用する内部の既定値です。評価機能を使う場合は評価値となります。それ以外の場合では、回答の名前と同一になります。


対応するフィールドが空でない場合、アンケートの説明、ようこそメッセージ、終了メッセージ、完了URL、アンケートデータポリシーの通知、ラベルは、アンケートロジック確認(表の上)に表示されます。

使い方

ページ上部にサマリーメッセージが表示されます。何も問題ない場合は、"このアンケートで検出された構文エラーはありません。"、"このグループ"あるいは"この質問"には"構文エラーが含まれていません。"となっています。エラーがあれば、"X個の質問に修正する必要のあるエラーがあります。"となります。

構文エラーのある質問は左端の列(#)の背景が赤く色分けされます。また、質問に含まれる最小のエラー数を示す警告が名前[ID]欄に表示されます。以下のエラーが一般的です。

  • 未定義の変数 - 変数すべてを定義していない場合、またはarray_filter(またはarray_filterの回答オプションのセット)に誤記がある場合、検証質問にエラーが表示されることがあります。未定義の変数は赤色のテキストで示され、赤色の線で囲まれています。
  • 不正な構文 - 出現条件の式を使い始めると、括弧が多すぎたり少なすぎたりすることがあります。このような構文の問題は、赤色でハイライトされ、枠で囲まれて表示されます。このような赤色のボックスのテキストの上にマウスを置くと、ツールチップにエラーが表示されます。

ExpressScript構文における色づけ

条件と式では、見やすくするため構文が強調表示されています。

  1. 緑 / 水色: アンケート中の先行する質問を参照する変数
  2. 青: 関数
  3. 灰色: 文字列式
  4. 茶色: TOKEN式(参加者データ)
  5. 黒: 演算子

チェック項目:

  1. 紫: アンケート中の後続の質問を参照する変数。通常、これはエラーであり、確認する必要があります。
  2. 赤または赤枠: 存在しない変数、存在しない先行質問の参照、構文エラーであり、確認する必要があります。


未定義の変数

未定義の変数が使用されている場合、それぞれの変数名は赤で色分けされ、赤い線で囲まれています。変数名の上にマウスを置くと、"未定義の変数"と表示されます。



  Attention : LimeSurveyでは、同じ質問コードを使用した質問を作成できません。ただし、すでに定義されている質問と同じ質問コードを使用する質問グループまたは質問をインポートすると、アンケートの中で同様の質問コードが含まれることがあります。質問IDは異なるため、質問をインポートすることはできます。ただし、(RまたはSPSSで)さらに分析するため、アンケート結果をエクスポートする場合、質問コードが変数と見なされるので注意してください。



}}

不正な構文

式にまつわる間違いのほとんどは、誤った構文に関連しています。これは、アンケート管理者は、しばしば中括弧を追加しわすれたり、正しい括弧の使用しなかったり、間違って式を使用したりするためです。



構文ハイライトの使用例を示します。


エラーを含むカスタムJavaScript

JavaScriptのエラーもアンケートロジック確認でも強調表示されます。


編集と検証を手早く行う

構文ハイライトされたテキストにはすべてツールチップが埋め込まれており、クリックすることができます。

  1. ツールチップ
    • 関数 - マウスの上にカーソルを置くと、関数の目的と構文の定義を見ることができます。
    • 変数名 - マウスの上にカーソルを置くと、場所(グループ、質問、サブ質問)、質問のテキスト、質問に対して許容される回答が表示されます。
  2. アクション
    • 変数名 - 変数名をクリックすると新しいウィンドウが開き、質問を編集することができます。これによりロジックを簡単に確認・検証することができます。具体的には、質問の出現条件や検証基準の中の変数名をクリックすることにより、それらがどこからきてどのように使用されているかを確認することができます。


次の例は、ExpressionScriptサンプルアンケートから取得したものです。アンケート、説明、ダウンロードのスクリーンショットがあります。


ボディー・マス・インデックス

本例のスクリーンショットです。

これは、質問で並べ替えた体格指数(BMI)計算のビューです。体重、身長、BMIの出現条件式は、質問列に表示されます。



アンケートの概要については、アンケートロジックのページを確認してください。



このアンケート例は、"weightstatus"を生成するためのネストされたif()ステートメントの良い例でもあります。


ロジックのカスケード

本例のスクリーンショットです。

この例は、array_filterおよびarray_filter_excludeを使用すると自動的に生成されるサブ質問の検証ロジックを示しています。この例は、"その他"の値をどのように置き換えることができるか(Q02_otherの回答はQ01_otherとする)も示しています。



Q05は、Q01とQ02でarray_filterとarray_filter_excludeをそれぞれ同時に使用する例です。この例は、array_filterの機能をカスケードすることを示しています。質問とサブ質問レベルの検証基準を示す主な理由は、array_filterまたはarray_filter_excludeの変数名を指定する際に(またはフィルタリングされたサブ質問のリストに異なる変数名を使用している場合に)タイプミスをしていないことを確実にするためです。このようなタイプミスがあった場合、無効な変数名はすべて未定義であることを示す赤で表示され、すぐに問題を修正することができます。



動的な出現条件

これは、質問の表示・非表示を制御する"出現条件"の動的でカスケーディングされたロジックの例を示しています。この例はここからダウンロードできます。

また、特定の検証基準を満たしている場合にのみ質問が表示されることにも注意してください。例えば、ある人が「子供が2人いる」と回答したときに特定の質問に回答しなければならない場合などです(kid1とkid2)。


グループレベルの出現条件

この例では、ロジックファイルにグループレベルの出現条件がどのように表示されるかを示します。以下の例のスクリーンショットがあります。

ご覧のように、グループレベルの関連式(cohabs > 1 && p1_rel != "")はG-2の灰色のPerson 2の行に表示されます。

また、すべての質問が必須であることに気付くかもしれません。しかし、グループの出現条件が否であれば、グループに属するすべての質問も否であり、グループが出現条件を満たしていれば、グループ内の質問は回答必須となります。

先行する質問に対する回答が空でない場合にのみ表示される質問があることに注意してください。 p2_sexが記入されていない場合、必須の質問であっても、p2_nameは表示されません。 p2_nameが記入されていない場合でも、必須質問p2_ageは表示されません。これらの質問は"条件付きで必須"と見なすことができます。

さらに、ヒントメッセージも自動的に作成されることに注意してください。値の範囲(最小/最大)、合計値の範囲(最小/最大/一致)、回答数(最小値/最大値)などで構成されています(質問タイプとアクティブな属性に依存)。回答範囲を検証したいものの、とるに足らない検証のヒントをユーザーに表示したくないこともあるでしょう。このような場合、hide_tip質問オプションを使用することができます(この例では、ユーザーが年齢として範囲外の値を入力しない限り、その値が0から115の間に制限されていることをユーザーに伝えないようにします。p2_ageを参照してください)。


小数点としてのカンマ

LimeSurveyは実行時に小数点の区切り記号としてカンマを使用することが完全にサポートされていますが、設計時(高度な質問属性で最小値・最大値を設定するときなど)には小数点としてドットを使用する必要があることを示す例をここに示します。実際の例がこちらにあります 。

また、検証ロジックは有効な質問属性から自動的に作成されることを覚えておいてください。圧倒的な式に驚くかもしれませんが、心配する必要はありません。