ArcGIS Survey123 は、多数の XLSForm 仕様をサポートしています。 このリファレンス ガイドでは、Survey123 で使用できる XLSForm 機能のサマリーを示します。 調査は Survey123 Connect または Survey123 Web サイトのいずれかで作成できます。機能の中にはどちらか片方のみで使用できるものと、両方で使用できるものがあります。
質問タイプ
次の表は、Survey123 Connect、Survey123 フィールド アプリ、Survey123 Web デザイナー、Survey123 Web アプリで利用可能な質問タイプについて説明したものです。 質問によっては、プラットフォーム間で動作と実装に相違がある場合があります。これらの相違点については、この表の後の注記をご参照ください。
Survey123 Connect 質問タイプ | Survey123 Web デザイナーの質問タイプ | 説明 | Survey123 フィールド アプリでサポート | Survey123 Web アプリでサポート |
---|---|---|---|---|
audio⁴ | オーディオ⁴ ⁶ | フィールド アプリにオーディオ クリップを記録します。Web アプリにオーディオ クリップを記録するか、アップロードされたオーディオ ファイルを許可します。 | Yes | Yes |
barcode | バーコードまたは QR コードをスキャンします。 | Yes | Yes | |
begin group | 質問のグループを開始します。 | Yes | Yes | |
begin repeat | N/A | 一連の繰り返しの質問を開始します。 | Yes | Yes |
計算 | N/A | フォームの値に対して計算を実行します。 calculate フィールドには計算の結果が格納されます。 | Yes | Yes |
decimal¹ | 小数の入力。 | Yes | Yes | |
date | 日付の入力。 | Yes | Yes | |
dateTime | 日時の入力。 | Yes | Yes | |
deviceid | N/A | 調査が取得された特定のデバイスを表す UUID。 | Yes | いいえ |
email² | N/A | 組織アカウントでサイン インすると、この質問にはアカウントの電子メール アドレスが自動的に追加されます。 | Yes | Yes |
end | N/A | 調査の終了日時。 | Yes | Yes |
end group | 質問のグループを終了します。 | Yes | Yes | |
end repeat | N/A | 一連の繰り返しの質問を終了します。 | Yes | Yes |
file | デバイス上のファイルを取り込みます。 | Yes | Yes | |
geopoint³ | 指定された GPS 座標を収集します。 デフォルト設定は現在の場所です。 | Yes | Yes | |
geoshape³ | マップ上のポリゴンを収集します。 | Yes | Yes | |
geotrace³ | マップ上のラインを収集します。 | Yes | Yes | |
非表示 | N/A | フォームに表示されないフィールドをフィーチャ レイヤー内に作成します。 [bind::esri:fieldType] 列と [bind::esri:fieldLength] 列を使用して、このフィールドのデータ スキーマを指定します。 | Yes | Yes |
integer¹ | 整数の入力。 | Yes | Yes | |
image | デバイスのファイルにある画像または直接撮影した写真のいずれかを取り込みます。 | Yes | Yes | |
note | 画面上にテキストを表示します。 メモでは非表示の計算も処理できます。 | Yes | Yes | |
範囲 | スライダー⁶ | 指定範囲の数の入力。 | Yes | Yes |
rank list_name | ランキングの質問。選択肢のリストの順序を決定します。 list_name を選択リストの名前に置き換えます。 | Yes | Yes | |
select_one list_name | 複数の選択肢の質問で、選択できるのは 1 つの回答のみ。 list_name を選択リストの名前に置き換えます。 | Yes | Yes | |
select_one_from_file file_name.csv | N/A | 複数の選択肢の質問で、選択できるのは 1 つの回答のみ。 file_name.csv を、調査のメディア フォルダー内にある、選択肢のリストを含むファイルの名前で置き換えます。 | Yes | Yes |
select_multiple list_name | 複数の選択肢の質問で、複数の回答を選択できます。 list_name を選択リストの名前に置き換えます。 | Yes | Yes | |
select_multiple_from_file file_name.csv | N/A | 複数の選択肢の質問で、複数の回答を選択できます。 file_name.csv を、調査のメディア フォルダー内にある、選択肢のリストを含むファイルの名前で置き換えます。 | Yes | Yes |
start | N/A | 調査の開始日時。 | Yes | Yes |
text | フリー テキストの回答。 正規表現は電子メールと Web サイトに適用されます。 ジオコードの表示設定は住所に適用されます。 | Yes | Yes | |
時間 | 時間の入力。 | Yes | Yes | |
username | N/A | 組織アカウントでサイン インすると、この質問にはアカウントのユーザー名が自動的に追加されます。 | Yes | Yes |
¹Web デザイナーでは、integer と decimal の質問が「数値」という単一の質問タイプに統合されます。 質問のプロパティにチェックボックスを使用すると、調査デザイナーは必要な入力を定義できます。
²Survey123 Connect と Survey123 Web デザイナーで提供される email 質問タイプの実装は異なります。 Survey123 Connect での実装には、ユーザーがサイン インした組織アカウントの電子メール アドレスが自動的に入力されます。 Survey123 Web デザイナーでの実装は、電子メール アドレスに一致する書式設定のみを許可するテキスト フィールドです。
³geopoint、geotrace、geoshape の質問は、「マップ」という単一の質問タイプに統合されました。 質問のプロパティにチェックボックスを使用すると、調査デザイナーは必要な入力を定義できます。 「住所」という名前の追加の質問タイプでは、ジオコーディングされたポイントを送信できます。
⁴オーディオの質問では Survey123 フィールド アプリでアップロードできませんが、Web アプリでは可能です。フィールド アプリでオーディオのアップロードを許可するには、ファイルの質問を使用します。
⁵Survey123 Connect で使用可能な複数の表示設定は、Survey123 Web デザイナーの個別の質問タイプとしても使用可能です。 これらの質問タイプには、複数行テキスト、ドロップダウン、リッカート尺度が含まれます。
⁶質問ごとに、Web デザイナーには、回答をキャッシュするオプションが表示されます。 Web アプリでは、調査レコードの送信後、質問に対する回答がブラウザーにキャッシュされ、そのデバイスでこの調査に対して次に送信を行う際にあらかじめ読み込まれます。 回答のキャッシュは、オーディオ、画像、ファイルのアップロード、署名を除くすべての質問タイプに対して設定できます。
survey ワークシートの列
次の表に、Survey123 でサポートされているすべての列を示します。 これらの列は、Advanced テンプレートの survey ワークシートに含まれており、ワークシートに表示される順番でテーブルにリストされます。
列 | 説明 |
---|---|
タイプ | 指定されたリストから質問タイプを選択します。 select_one または select_multiple の質問を使用する場合、有効なリスト名を入力します。 |
name | フィーチャ レイヤーのフィールド名。 |
label | 調査で表示される質問のラベル。 |
hint | 調査の質問に答えるのに役立つ情報。 |
guidance_hint | アイコンをクリックした後のみ表示される追加の情報。 |
appearance | 調査内のこのフィールドの表示設定を選択します。 |
必須 | [yes] を選択すると、調査を完了する前に、このフィールドに値が必要になります。 |
required_message | 必須フィールドに回答がない場合、回答を求めるために、この列のメッセージが表示されます。 |
readonly | [yes] を選択すると、このフィールドの値が読み取り専用に設定されます。 これらの値は、調査内で編集できません。 |
default | このフィールドのデフォルト値を設定します。 調査にデフォルト値を設定します。 これを使用すると、よく使用される回答を提供するか、予想される回答の選択肢のタイプを示すことで、時間を節約できます。 |
calculation | 前の質問の値を使用して計算を実行します (例: ${number} * 100)。 計算フィールドを参照して結果を表示します (例: The answer is ${calc})。 |
constraint | 入力できる数値の範囲を制限します (例: .>0 および .<100)。 すべての質問タイプに使用できます。 |
constraint_message | 制約条件を満たさない場合、有効な回答を求めるために、このメッセージが表示されます。 |
relevant | 以前の質問の回答に基づいて、質問をスキップしたり、追加の質問を表示したりすることができます。 relevant 列の条件 (例: ${name} = 'value') を満たすと、質問が表示されます。 この列によって非表示になった質問は、null 値のみを送信します。 |
choice_filter | カスケード式の選択を使用する場合、このフィールドは、選択タブの追加の属性列と一致する式を保持します (例: attribute = ${value})。 |
repeat_count | この値は、繰り返しで使用できるレコード数を指定します。 繰り返し数を指定した後は、繰り返しのレコードを追加または削除することはできません。 |
media::audio | オーディオ ファイルをプロジェクトのメディア サブフォルダーにコピーし、オーディオ ファイルの名前 (例: audio.mp3) を入力して、質問にオーディオを加えます。 |
media::image | 画像ファイルをプロジェクトの media サブフォルダーにコピーし、画像ファイルの名前 (例: image.jpg) をここに入力して、質問とともに画像を表示します。 |
bind::type | 質問のデフォルトのフィールド タイプを上書きするフィールド タイプ。 |
bind::esri:fieldType | フィーチャ レイヤーのターゲット フィールド タイプを定義します。 これを使用して、デフォルト フィールド タイプを上書きできます (たとえば、calculate および select_one フィールドはデフォルトでは文字列です。 フィーチャ レイヤーにこの値を整数で保存するには、esriFieldTypeInteger を選択します)。 |
bind::esri:fieldLength | フィーチャ レイヤーのターゲット フィールドの長さを定義します。 これを使用して、デフォルトのフィールドの長さを上書きできます。 |
bind::esri:fieldAlias | フィーチャ レイヤー内のフィールド エイリアスの値を指定します。 これを使用して、質問ラベルから取得されるデフォルトのフィールド エイリアスの値を上書きできます。 |
body::esri:style | 質問のスタイルや動作を定義するための式を指定します (例: グループや繰り返しの背景色)。 |
bind::esri:parameters | Survey123 に固有の質問のパラメーターを指定します (例: 調査を編集するときの繰り返しの動作を制御するパラメーター)。 |
bind::esri:workflow | パラメーターを指定して、距離計計測モードで調査を使用できるようにします。 |
パラメーター | 質問に対し、標準の XLSForm パラメーターを指定します (例: 範囲の質問の start、end、step の各パラメーター)。 |
body::accept | ファイルの質問で使用可能なファイル タイプを設定します。 ファイル拡張子を許可します。複数のファイル拡張子はカンマで区切ります (例: .jpg, .png)。 |
body::esri:visible | 以前の質問の回答に基づいて、質問をスキップしたり、追加の質問を表示したりすることができます。 [body::esri:visible] 列の条件 (例: ${name} = 'value') を満たすと、質問が表示されます。 この列によって非表示になった質問は値を含んだままで、値を送信します。 |
body::esri:inputMask | 入力マスクを使用する式を指定して、文字とシンボルを使用することで、データ エントリの設定形式を提供します。 |
label::language (xx) | 質問のラベルの翻訳を指定します。 言語は、言語名とコードで指定する必要があります (例: label::Español (es)). 言語ごとに新しい列を追加します。 言語のリストは、調査のドロップダウン メニューに表示されます。 |
hint::language (xx) | 質問のヒントの翻訳を指定します。 言語は、言語名とコードで指定する必要があります (例: hint::Español (es)). 言語ごとに新しい列を追加します。 言語のリストは、調査のドロップダウン メニューに表示されます。 |
guidance_hint::language (xx) | ガイダンスのヒントの翻訳を指定します。 言語は、言語名とコードで指定する必要があります (例: guidance_hint::Español (es))。 言語ごとに新しい列を追加します。 言語のリストは、調査のドロップダウン メニューに表示されます。 |
required_message::language (xx) | 必要な質問が回答されていない場合、表示されるメッセージの翻訳を指定します。 言語は、言語名とコードで指定する必要があります (例: required_message::Español (es))。 言語ごとに新しい列を追加します。 言語のリストは、調査のドロップダウン メニューに表示されます。 |
body::accuracyThreshold | 位置の値を受け入れなくする上限の閾値の数値 (メートル単位) を指定します。 ジオトレースと、ジオシェープおよびジオトレースの質問の頂点に適用されます。 |
bind::esri:warning | 条件を満たさない場合に警告を表示する式を適用します。 |
bind::esri:warning_message | bind::esri:warning 条件を満たさない場合にメッセージを表示します。 |
bind::saveIncomplete | アプリが質問の後に回答を自動的に保存する場合、true に設定します。 |
表示設定
特定のタイプの質問では [appearance] 列に次の値を入力して、表示方法や挙動を変更できます。 この詳細については、「表示設定」をご参照ください。
表示設定 | 適用可能な質問タイプ | 説明 | Survey123 フィールド アプリでサポート | Survey123 Web アプリでサポート |
---|---|---|---|---|
注釈 | image | ユーザーがキャンバス ウィンドウを開いてスケッチできます。画像上のアノテーションもサポートされています。 | Yes | Yes |
autocomplete | select_one | 回答の選択肢がドロップダウン メニューに表示され、テキストを入力すると表示されるオプションが絞られます。 | Yes | Yes |
calculator | integer、decimal | この質問のためにカスタム計算機ウィジェットを表示します。 | Yes | いいえ |
最適化 | select_one、select_multiple、begin group、begin repeat | select_one と select_multiple の質問では、省スペースな方法で選択肢が横方向に表示されます。 group と repeat では、質問が起動時に折りたたまれて表示されますが、ユーザーが展開することも可能です。 | Yes | Yes |
compact-n | select_one、select_multiple | n で指定されたカラム数の上限を使用して、省スペースな方法で選択肢が横方向に表示されます。 たとえば、compact-3 では質問が最大 3 カラムに制限されます。 | Yes | Yes |
distress | integer | 色の付いたスライド可能なスケールで質問を表示します。 | Yes | いいえ |
draw | image | ユーザーがキャンバス ウィンドウを開いてスケッチできます。 | Yes | Yes |
field-list | begin group、begin repeat | 調査のスタイルがページに設定されている場合、質問のグループを別々のページで表示します。 | Yes | Yes |
geocode | text | ジオコーディングされた住所を検索し、送信します。 | Yes | Yes |
getinframarkerid | text | 24 文字の一意の InfraMarker タグ ID を取得し、格納します。 | Yes | いいえ |
非表示 | すべて | 表示されている質問が非表示になりますが、デフォルトと計算をそのまま使用できます。 | Yes | Yes |
hide-input | geopoint | 調査を Web アプリで開いたときに、座標エントリ セクションを折りたたみます。 | いいえ | Yes |
horizontal | select_one、select_multiple | 回答の選択肢を水平に列状に表示します。 | Yes | Yes |
horizontal-compact | select_one、select_multiple | compact の表示設定と同じです。 | Yes | Yes |
image-map | select_one、select_multiple | 添付された .svg 画像と選択可能な地域を表示します。 | Yes | いいえ |
inframarker | text | InfraMaker タグに書き込まれる情報を提供します。 | Yes | いいえ |
likert | select_one | 回答の選択肢がリッカート尺度として表示されます。 | Yes | Yes |
minimal | select_one、select_multiple、barcode、begin repeat | 複数の回答 (select_one、select_multiple)、複数の質問 (repeats)、およびテキスト ボックス (barcode) を非表示または最小化して表示します。 | Yes | Yes |
minimal compact | begin repeat | 繰り返し内の質問を折りたたんだ状態 (compact) と非表示 (minimal) で表示できます。 | Yes | Yes |
month-year | date | 日付の月と年のみを選択します。 | Yes | Yes |
multiline | テキスト、画像、ファイル | テキストの質問を複数行のテキスト ボックスとして表示します。 画像またはファイルの質問は、複数のファイルを添付できます。 | Yes | Yes |
new-front | image | 質問は、デフォルトで前面カメラを使用した写真撮影に限定されます。 | Yes | いいえ |
new-rear | image | 質問は、デフォルトで背面カメラを使用した写真撮影に限定されます。 | Yes | いいえ |
no-ticks | 範囲 | 位置、最小値、最大値のない範囲スライダーを表示します。 | Yes | Yes |
nopredictivetext | text | モバイル デバイスの予測テキストを無効にします。 | Yes | いいえ |
numbers | integer、decimal | この質問のためにカスタム数値キーボードを表示します。 | Yes | いいえ |
predictivetext | text | モバイル デバイスの予測テキストを有効にします。 | Yes | いいえ |
press-to-locate | ジオポイント、ジオトレース、ジオシェープ | ジオポイントの質問の場合、ユーザーが質問と対話した後のみ位置を受け取ります。 ジオトレースやジオシェイプの場合、最初に質問と対話するときにポイントを捕捉することなく、ユーザーの位置を中心に合わせます。 | geopoint のみ | Yes |
rangefinder | text | 完全な JSON オブジェクトか、距離計から返される指定の値のいずれかを受け付けます。 | Yes | いいえ |
search | text | 調査のメディア フォルダー内の CSV テーブル、または既存のフィーチャ レイヤーかテーブルの値を、選択肢リストに含めます。 | Yes | いいえ |
signature | image | 署名の取得のための UI が表示されます。 署名は添付ファイルとしてフィーチャに追加されます。 | Yes | Yes |
spike | image | Spike デバイスと Spike アプリが必要です。 Spike 統合を使用し、写真の距離と位置を計測します。 | Yes | いいえ |
spike-full-measure | image | Spike デバイスと Spike アプリが必要です。 Spike 統合を使用し、写真の距離、位置、面積、長さを計測します。 | Yes | いいえ |
spike-point-to-point | image | Spike デバイスと Spike アプリが必要です。 Spike 統合を使用し、写真撮影された 2 つのポイント間の距離を計測します。 | Yes | いいえ |
spinner | integer、decimal | 値を増減するボタンを追加します。 | Yes | いいえ |
table-list | begin group | 共通の選択肢リストを持つグループ内で、一連の select_one の質問をテーブル形式で表示します。 | Yes | Yes |
thousands-sep | decimal | 回答を桁区切り記号を付けて表示します。 事前に設定された回答に対してのみ適用されます。 | Yes | いいえ |
week-number | date | 何週目かの番号を選択します。 | Yes | いいえ |
year | date | 日付の年のみを選択します。 | Yes | Yes |
パラメーター
XLSForm の一部の質問タイプには、調査内の質問のスタイルや振舞いをコントロールできる追加のパラメーターが用意されています。 場合によっては、これらのパラメーターが、質問タイプがサポートする表示設定を補完します。 各質問タイプがサポートするパラメーターの概要については、「XLSForm パラメーター」をご参照ください。
デフォルト値
date の質問の [default] 列に「today()」と入力すると、デフォルト値が今日の日付になります。
select_one の質問のデフォルト値には、選択肢の [名前] (選択肢の [ラベル] ではない) を入力します。
select_multiple の質問タイプに対する回答は他とは異なる使用方法で、チェックされた各回答は選択順に入力され、カンマで区切られます。 select_multiple の質問で複数の値をデフォルトとして定義するには、これらをカンマで区切ります (例: item1,item2,item3)。
データの整合チェック
[required] 列に yes を値として入力すると、 調査の質問では、フォームを完了する前にその質問に値が格納されていることが必須となります。
演算子
次の表に示す演算子は、式をサポートする XLSForm 列で使用できます ([constraint] 列、[calculation] 列、[relevant] 列など)。
計算と制約の詳細については、「式」をご参照ください。[relevant] 列の詳細については、「式の作成」をご参照ください。
演算子 | 説明 | 例 |
---|---|---|
。 | 現在の回答 | .=1 |
+ | 加算 | ${question_one} + 4 |
- | 減算 | ${question_one} - 4 |
* | Multiplication | ${question_one} * 4 |
div | Division | ${question_one} div 4 |
= | 等しい | ${price}=9.80 |
!= | 等しくない | ${price}!=9.80 |
< | より小さい | ${price}<9.80 |
<= | 以下 | ${price}<=9.80 |
> | より大きい | ${price}>9.80 |
>= | 以上 | ${price}>=9.80 |
and | And | ${price}>9.00 and ${price}<9.90 |
mod | 剰余 (除算の余り) | ${question_one} mod ${question_two} |
or | Or | ${price}=9.80 or ${price}=9.70 |
関数
Survey123 では、以下の関数がサポートされています。
関数 | 説明 | 例 |
---|---|---|
boolean(question, expression, or value) | 指定された値が NULL でない場合に TRUE を返します。 代わりに boolean-from-string() を使用することをお勧めします。 注意:この関数は、Survey123 Web アプリでは必ず true を返します。 その他については、「空の値」をご参照ください。 | boolean(${question_one}) |
boolean-from-string() | 指定された文字列が 'true' または '1' の場合に TRUE を返します。 それ以外の場合は FALSE を返します。 | boolean-from-string(${question_one}) |
coalesce(value1, value2) | 空でない最初の値を返します。 この関数では 2 つの値しか使用できません。 | coalesce(${question_one}, ${question_two}) |
concat(value1, value2, …) | 文字列値の連結を返します。 | concat(${question_one}, ' and ', ${question_two}) |
contains(string, substring) | 指定の文字列にサブ文字列が含まれている場合に TRUE を返します。 | contains(${question_one}, 'red') |
count(repeat) | 回答の合計を、繰り返し全体で所定の質問に返します。 詳細については、「集約関数」をご参照ください。 注意:この関数を Survey123 フィールド アプリで使用する場合、繰り返し内または繰り返し外に配置できます。 この関数を Survey123 Web アプリで使用する場合は、繰り返し外に配置する必要があります。 繰り返し外からの個数を、繰り返し内の計算で参照できます。 | count(${question}) |
count-selected(question) | [select_one] 質問と [select_multiple] 質問に対し、選択された回答の数を返します。 さらに、multiline の表示設定を使用し、[image]、[audio]、[file] の質問の添付ファイルの数も返します。 | count-selected(${question_one}) |
date(question, expression, or value) | 時間を維持しないで数値または文字列を日付オブジェクトに変換します。 | date('2017-05-28T04:39:02+10:00') |
date-time(question, expression, or string) | 数値または文字列を日付オブジェクトに変換します。 | date-time('2017-05-28T04:39:02+10:00') |
日付オブジェクトを 10 進数の日付/時間の値に変換します。 | decimal-date-time(${date_question}) | |
decimal-time(question, expression, or string) | 時刻オブジェクトを、デバイスのタイムゾーンでの日の小数部分を表す数値に変換します。 | decimal-time(${time_question}) |
ends-with(string, substring) | 指定の文字列がサブ文字列で終わる場合に TRUE を返します。 | ends-with(${question_one}, 'hand.') |
false() | False | false() |
既存の日付または時刻の値を、定義した形式に合わせます。 | format-date(${previous_time}, '%H:%M') | |
if(condition, a, b) | 条件が true と評価されると a を返し、それ以外の場合は b を返します。 | if(selected(${question_one}, 'yes') and selected(${question_two}, 'yes'), 'yes', 'no') |
indexed-repeat(question, repeat, index number) | 繰り返しレコード内の特定の質問から値を返します。 詳細については、「繰り返し」をご参照ください。 | indexed-repeat(${room_no}, ${floor}, 3) |
int(question, expression, or value) | 整数に変換します。 変換方法はデータ型によって異なります。 注意:この関数が空の場合、NaN が返され、質問は空のままになります。 | int(${question_one}) |
join(separator, question) | 繰り返し内の指定の質問にすべての回答を指定の区切り記号で区切って結合します。 注意:この関数を Survey123 フィールド アプリで使用する場合、繰り返し内または繰り返し外に配置できます。 この関数を Survey123 Web アプリで使用する場合は、繰り返し外に配置する必要があります。 繰り返し外からの結合値を、繰り返し内の計算で参照できます。 | join(',', ${question_in_repeat}) |
jr:choice-name(choice_name, 'question') | [select_one] 質問に使用されます。 指定の質問に含まれる選択肢の名前に関連付けられたラベルを返します。 質問は引用符で囲んで定義する必要があるので注意してください。 | jr:choice-name(${select_one}, '${select_one}') |
select_multiple 質問に使用されます。 指定の質問に含まれる選択肢の名前に関連付けられたラベルを返します。 個々の回答のラベルを抽出するために selected-at() 関数を使用する必要があります。 質問は引用符で囲んで定義する必要があるので注意してください。 | jr:choice-name(selected-at(${select_multiple}, 3), '${select_multiple}') | |
max(value1, value2, ...) | 所定の範囲内の最大値をそのまま返すか、所定の範囲内の最大値を繰り返し全体で 1 つの質問に返します。 | max(${question_one}, ${question_two}) |
min(value1, value2, ...) | 所定の範囲内の最小値をそのまま返すか、所定の範囲内の最小値を繰り返し全体で 1 つの質問に返します。 | min(${question_one}, ${question_two}) |
not(expression) | 式が true を返す場合は false の値、false を返す場合は true の値を返します。 | not(selected(., 'yes')) |
now() | 現時点のタイム スタンプを返します。 この関数は、time および dateTime の質問で使用されます。 date の質問の today() と同じ動作をします。 | now() |
number(question, expression, or value) | 数値に変換します。 変換方法はデータ型によって異なります。 注意:この関数が空の場合、NaN が返され、質問は空のままになります。 | number(${question_one}) |
once() | 質問にすでに値が設定されている場合は、既存の値を返します。 この関数は、繰り返しの質問で random() または uuid() を使用して、フォーム内の繰り返しレコードを参照しても値が変わらないことを確認する場合に役立ちます。 | once(uuid()) |
position(..) | 繰り返し内の現在のレコードのインデックスを返します。 詳細については、「繰り返し」をご参照ください。 | position(..) |
pulldata() | 外部の CSV ファイルの値を返します。 詳細については、「CSV からの値の取得」をご参照ください。 | pulldata('users', 'email', 'name', ${respondent_name}) |
pulldata("@exif") | 画像の EXIF メタデータから値を返します。 詳細については、「画像メタデータの抽出」をご参照ください。 | pulldata("@exif", ${photo}, "GpsLatitude") |
pulldata("@geopoint") | ジオポイントの質問から値を返します。 詳細については、「ジオポイント値の抽出」をご参照ください。 | pulldata("@geopoint", ${location}, "horizontalAccuracy") |
pulldata("@javascript") | フォームの JavaScript 関数を実行し、結果を返します。 詳細については、「調査フォームの JavaScript 関数」をご参照ください。 | pulldata("@javascript", "functions.js", "uniqueID", ${buildings}) |
pulldata("@json") | JSON オブジェクトから値を返します。 詳細については、「JSON からの値の取得」をご参照ください。 | pulldata("@json", ${json_output}, "attributes.ZIP_CODE") |
pulldata("@layer") | ArcGIS フィーチャ レイヤー、フィーチャ テーブル、またはクエリ対応のマップ サービスをクエリし、結果を返します。 詳細については、「フィーチャ レイヤーのクエリ」をご参照ください。 | pulldata("@layer", "getRecordAt", "https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/World_Time_Zones/FeatureServer/0", ${location}) |
pulldata("@property") | デバイスまたはサインインしているユーザーに関する情報を返します。 詳細については、「デバイスとユーザー プロパティ」をご参照ください。 | pulldata("@property", 'username') |
random() | 0 (含まれる) と 1 (含まれない) のランダムな値を返します。 | random() |
regex() | 正規表現を質問の入力に適用します。 パターンが一致すると true を返します。 詳細については、「正規表現」をご参照ください。 | regex(., '^\d{5}$') |
selected(質問, 値) | 回答が選択されているかどうかを確認します。 この関数は、[select_one] 質問と [select_multiple] 質問に使用されます。 | selected(${question_one}, 'a') |
selected-at(question, number) | select_multiple 質問に使用されます。 指定の数値に対してゼロから数えて選択された選択肢の名前を返します。たとえば、'2' の場合は、3 番目に選択された選択肢を返します。 | selected-at(${question_one}, 2) |
starts-with(string, substring) | 指定の文字列がサブ文字列で始まる場合に TRUE を返します。 | starts-with(${question_one}, 'The') |
string(question, expression, or value) | 文字列に変換します。 変換方法はデータ型によって異なります。 | string(${question_one}) |
string-length(question, expression, or value) | 空でない文字列の長さを返します。 | string-length(${question_one}) |
substr(question, start, end) | 指定された開始の値から、インデックスの終了 -1 の文字までのサブ文字列を返します。ここで、開始と終了の値は 0 で始まります。 | substr(${question_one}, 1, 2) |
sum(repeat) | すべての回答の合計を、繰り返し全体で所定の質問に返します。 詳細については、「集約関数」をご参照ください。 注意:この関数を Survey123 フィールド アプリで使用する場合、繰り返し内または繰り返し外に配置できます。 この関数を Survey123 Web アプリで使用する場合は、繰り返し外に配置する必要があります。 繰り返し外からの合計値を、繰り返し内の計算で参照できます。 | sum(${question}) |
today() | 現地時間の正午として内部的に格納されている、本日の日付を返します。 この関数は、date の質問で使用されます。 | today() |
true() | True | true() |
uuid() | ランダムな UUID 文字列を返します。 | uuid() |
version() | [設定] ワークシートで定義された調査のバージョンを返します。 | version() |
Survey123 では、次の数学関数がサポートされています。
関数 | 説明 | 例 |
---|---|---|
acos(値) | 値の逆余弦を返します。 | acos(${question_one}) |
asin(値) | 値の逆正弦を返します。 | asin(${question_one}) |
atan(値) | 値の逆正接を返します。 | atan(${question_one}) |
atan2(値 1, 値 2) | 値の商の逆正接を返します。 | atan2(${question_one}, ${question_two}) |
cos(値) | 値の余弦を、ラジアン単位の角度として返します。 | cos(${question_one}) |
sin(値) | 値の正弦を、ラジアン単位の角度として返します。 | sin(${question_one}) |
tan(値) | 値の正接を、ラジアン単位の角度として返します。 | tan(${question_one}) |
exp(値) | 値の自然指数を返します。 | exp(${question_one}) |
exp10(値) | 10 の値乗を返します。 | exp10(${question_one}) |
log(値) | 値の自然対数を返します。 | log(${question_one}) |
log10(値) | 値の基数 10 の対数を返します。 | log10(${question_one}) |
pi() | pi を返します。 | pi() |
pow(値, 指数) | 値を指定の指数で累乗して求められた結果を返します。 | pow(${question_one}, 3) |
round(値, 桁) | 四捨五入された値を返します。 | round(${question_one}, 5) |
sqrt(値) | 値の平方根を返します。 | sqrt(${question_one}) |
HTML 形式
質問のラベルとヒント、選択肢リストのラベルで、HTML 形式を使用できます。 サポートされている HTML 形式は次のとおりです。
タグ | 属性 |
---|---|
a | href、style |
abbr | title |
audio¹ | autoplay、controls、loop、muted、preload |
b、strong、i、em、u、ul、ol、li、tbody、br、hr | |
dd、dl、dt | style |
div¹ | style、align |
figcaption | style |
figure | style |
font | size、color、style |
h1、h2、h3、h4、h5、h6 | style |
img | src、width、height、border、alt、style |
p | style |
source¹ | media、src、type |
span | style |
sub | style |
sup | style |
table | width、height、cellpadding、cellspacing、border、style |
td、th | height、width、valign、align、colspan、rowspan、nowrap、style |
tr | height、valign、align、style |
video¹ | autoplay、controls、height、loop、muted、poster、preload、width |
¹ Survey123 Web アプリでのみサポートされます。
ヒント:
デフォルトでは、HTML 形式で作成したハイパーリンクを Survey123 Web アプリで開くと、調査と同じタブにリンク先のページが開きます。 このリンクを新しいタブで開くには、target="_blank" タグに a href を追加します。例:
<a href="https://www.esri.com" target="_blank">Link to Esri website</a>
正規表現
正規表現は、検索パターンを定義する文字列です。 これは 1 つの質問の中で使用され、他の質問に基づいて値を決定したり、データ エントリを制限したりできます。 正規表現は、次の表に示す部分式から構築できます。 詳細については、「式」をご参照ください。
部分式 | 一致 |
---|---|
^ | 行の先頭と一致します。 |
$ | 行の末尾と一致します。 |
。 | 改行文字以外の任意の 1 文字と一致します。 |
[...] | 括弧内の任意の 1 文字と一致します。 |
[^...] | 括弧内にない任意の 1 文字と一致します。 |
(re) | 正規表現をグループ化し、一致するテキストを記憶します。 |
(?: re) | 一致するテキストを記憶せずに、正規表現をグループ化します。 |
a| b | a または b のいずれかと一致します。 |
\A | 文字列全体の先頭。 |
\b | 括弧の外側の場合は単語の境界と一致します。括弧の内側の場合はバックスペース (0x08) と一致します。 |
\B | 単語以外の境界と一致します。 |
\d | 数字と一致します。 [0 ~ 9] と同じです。 |
\D | 数字以外と一致します。 |
\G | 直前の一致が終了したポイントと一致します。 |
\n、\t、\e など | 改行文字、タブ、エスケープなどと一致します。 |
\N | グループ番号 N を取得するために後方参照します。 |
re* | 先行する式の 0 回以上の発生と一致します。 |
re+ | 先行する式の 1 回以上の発生と一致します。 |
re? | 先行する式の 0 回または 1 回の発生と一致します。 |
re{ n} | n によって定義される、先行する式の正確な発生回数と一致します。 |
re{ n,} | 先行する式の n 回以上の発生と一致します。 |
re{ n, m} | 先行する式の最小発生回数 (n によって定義される) と最大発生回数 (m によって定義される) と一致します。 |
\s | 空白文字 (タブ、ライン フィード、フォーム フィード、キャリッジ リターン、スペース) と一致します。 |
\S | 空白文字以外と一致します。 |
\w | 単語の文字と一致します。 |
\W | 単語以外の文字と一致します。 |
\z | 文字列全体の末尾。 |
\Z | 許可される最終行ターミネーターを除く、文字列全体の末尾。 |
たとえば、正規表現 regex(.,'^[A-Za-z]*$') では、文字列の質問に対して文字のみを入力する必要があり、数字や特殊文字は入力できません。
Esri フィールド タイプ
[bind::esri:fieldType] 列を使用して、デフォルトのフィール タイプを次のいずれかの値で上書きできます。 詳細については、「Esri カスタム列」をご参照ください。
フィールド値 | 結果 |
---|---|
esriFieldTypeDate | 日付と時刻の値 |
esriFieldTypeDateOnly | 日付のみで時間のない値 |
esriFieldTypeTimeOnly | 時間のみで日付のない値 |
esriFieldTypeTimestampOffset | 日付、時間、および UTC からのオフセット値 |
esriFieldTypeDouble | 倍精度浮動小数点数 |
esriFieldTypeGUID | GUID (Globally Unique Identifier) |
esriFieldTypeInteger | 整数 (32 ビット) |
esriFieldTypeBigInteger | 整数 (64 ビット) |
esriFieldTypePointZ | ジオポイントでの高度の取得を有効にします。 |
esriFieldTypeString | 一連の英数字シンボル |
NULL | NULL フィールド、値を格納しません。 |
特殊文字
質問の名前と選択肢の名前には、空白、カンマ、ハイフン、括弧、ブラケットなどの特殊文字や、$、%、# のような文字を使用できません。 select_multiple の質問の選択肢の名前には空白とカンマを使用しないことが重要です。