Survey123 では、いくつかの方法で回答を事前設定できます。
デフォルトの回答
調査の質問に対するデフォルトの回答は、調査を作成するときに、スプレッドシートの [default] 列に設定できます。 これにより、調査を開始するたびに、または質問が有効になるときに、調査の質問に同じ回答が事前設定されるようになります。 これは、調査の質問に対する回答がほぼ毎回同じになるような場合に、特に便利です。 必要に応じてデフォルトの回答を編集することもできますが、デフォルトの回答を設定することで、調査入力時の時間を節約できます。 デフォルトの回答には、文字列や数値などの定数を含めることができます。
select_multiple の質問に対する回答は他とは異なる使用方法で、チェックされた各回答は選択順に入力され、カンマで区切られます。 select_multiple フィールドで複数の値をデフォルトとして定義するには、これらをカンマで区切ります (例: item1,item2,item3)。
ジオポイント、ジオトレース、ジオシェープの質問は、デフォルトの回答をサポートしています。 デフォルトを設定する方法について詳しくは、「ジオポイント」と「ジオトレースとジオシェープ」をご参照ください。
計算
計算はデフォルトと似ていますが、異なる点もあります。 [default] 列は、調査を開いたとき、または質問が有効になるときにのみ評価されますが、計算は、計算への入力である調査内の回答が変更されるか、または有効になるたびに値が求められます。 計算では、フォーム内の既存の回答を使用できます。 たとえば、質問の calculation 列に入力された式 100 - (${integer1} + ${integer2}) は、質問 integer1 と integer2 の値を合計し、その値を 100 から減算した値を回答として設定します。 ユーザーはこの値を上書きできますが、計算により、ユーザーを手引きする最初の回答を提示できます。
ヒント:
計算結果が手動で編集された場合、編集された値を消去して計算を再実行するためのボタンを使用できます。
計算モード
[bind::esri:parameters] 列に入力した calculationMode パラメーターは、質問内の計算を計算する場合を制御します。例: calculationMode=manual。 次の 4 つの値がサポートされています。
- auto - 質問が空の場合、または質問がこれまでにユーザーによって変更されていない場合に計算します。 値を指定しない場合、これがデフォルトの計算動作です。
- manual - 質問の横にある [計算] ボタンをクリックしたときにだけ計算します。
- always - 計算式で参照されている値が変更されたときに計算します。 これには、now() などの動的関数が含まれます。
- whenEmpty - 空でない値が返されるまで計算します。 空でない値が返されると、質問は manual モードと同じように動作します。 now() などの動的関数が含まれている計算では、[計算] ボタンをクリックしないと再計算は行われません。 [受信トレイ] から開く場合など、フォームを再読み込みしたときに空でない値が含まれている計算済みの質問を更新したくない場合には whenEmpty モードが便利です。
次の質問タイプは、calculationMode パラメーターをサポートしています。
- text
- decimal
- integer
- note
- date
- time
- dateTime
- select_one
- select_multiple
- geopoint
- calculate
- hidden
注意:
calculationMode パラメーターは、Survey123 Web アプリではサポートされていません。
デバイスとユーザー プロパティ
pulldata("@property") 関数を使用すると、調査の回答を送信したデバイスと、回答を送信したサインイン済みユーザーに関する情報を抽出できます。 この関数は、技術詳細と調査を取得した状況に関する情報を記録するために役立ちます。
この関数は、pulldata("@property", '<property name>') 形式でデバイスとユーザー プロパティを返します。 次の例では、デバイスの UTC オフセットが返され、ユーザーは調査が取得されたタイム ゾーンを記録できます。
pulldata("@property", 'utcOffset')
pulldata("@property") 関数を使用して、次の方法で、現在ユーザーが調査の回答を操作している方法を検出できます。
pulldata("@property", 'mode')
mode プロパティには 3 つの値があり、ユーザーが新しい調査の回答 (既存の調査からコピーしたものを含む) を作成している場合は new、ユーザーが既存の回答を編集している場合は edit、ユーザーが既存の回答を読み取り専用モードで表示している場合は view が返されます。 次の例は、この関数を [readonly] 列に配置し、ユーザーが既存の回答を編集しているかどうかを検出して、選択した質問が編集されるのを防いでいます。
pulldata("@property", 'mode') = 'edit'
pulldata("@property") 関数は、調査が開かれた場所の判別にも使用できます。 次の例は、調査が受信トレイから開かれたかどうかを判別しています。
pulldata("@property", 'status') = 'inbox'
注意:
mode または status プロパティの結果を hidden または calculate 質問に格納したり、[relevant] 列でこれらのプロパティを使用して質問を有効または無効にしたりしないことをお勧めします。 これらの操作を行うと、フィールドの内容が削除されたり、値が期待どおりに更新されなくなる可能性があります。
pulldata("@property") 関数は、次のプロパティをサポートしています。
プロパティ | 説明 |
---|---|
pulldata("@property", 'portalUrl') | 調査の送信先のポータル URL。 |
pulldata("@property", 'token') | フィーチャ レイヤーに渡されたトークン。 |
pulldata("@property", 'portalInfo') | すべてのポータル情報 (JSON オブジェクトとして)。 |
pulldata("@property", 'submissionUrl') | 調査の送信先のフィーチャ サービス レイヤー (または繰り返しがある場合のフォームの親レイヤー) の URL。 |
pulldata("@property", 'online') | ブール値。 デバイスにネットワーク アクティビティがある場合は true、ない場合は false。 |
pulldata("@property", 'utcOffset') | ローカル タイム ゾーンの UTC からのオフセット (時間単位)。 |
pulldata("@property", 'language') | 現在の調査で使用されている言語。 |
pulldata("@property", 'locale')¹ | 現在の調査で使用されているロケール オブジェクト。 |
pulldata("@property", 'localeInfo')¹ | 今回の調査で使用した AppStudio LocaleInfo オブジェクト。さまざまな表記の言語コードが含まれます。 |
pulldata("@property", 'timeZone') | タイム ゾーン コード。 |
pulldata("@property", 'username') | 現在サイン インしているユーザーの ArcGIS 組織アカウントのユーザー名。 |
pulldata("@property", 'email') | 現在サイン インしているユーザーの ArcGIS 組織アカウントの電子メール アドレス。 |
pulldata("@property", 'userFullName') | 現在サインインしているユーザーの名と姓。 |
pulldata("@property", 'userFirstName')² | 現在サインインしているユーザーの名。 |
pulldata("@property", 'userLastName')² | 現在サインインしているユーザーの姓。 |
pulldata("@property", 'deviceId')³ | 調査が取得された特定のデバイスを表す Survey123 によって生成された一意の ID。 これはモジュール デバイスの IMEI (International Mobile Equipment Identity) と異なります。Survey123 が実行されるデバイスには IMEI がない場合があります。 |
pulldata("@property", 'deviceModel')³ | ユーザーのデバイスのモデル名。 |
pulldata("@property", 'OS')³ | ユーザーのデバイスのオペレーティング システム名。 |
pulldata("@property", 'appVersion') | フィールド アプリのバージョン番号、または Web アプリのビルド番号。 |
pulldata("@property", 'surveyName') | 調査の名前。 |
pulldata("@property", 'userAgent') | ユーザーのデバイスのユーザー エージェント文字列。 |
pulldata("@property", 'mode') | ユーザーが調査の回答を作成している場合は new、ユーザーが既存の回答を編集している場合は edit、ユーザーが回答を読み取り専用モードで表示している場合は view が返されます。 |
pulldata("@property", 'status') | 調査が [ドラフト]、[送信箱]、[送信済み]、または [受信トレイ] から開かれた場合に、それぞれ draft、submitted、sent、または inbox が返されます。 回答が新しい場合は、空の文字列が返されます。 |
¹pulldata("@javascript") 関数で使用する場合のみ。
² これらのパラメーターは ID プロバイダーの構成に存在するものに依存し、組み込みの認証以外の認証を使用している組織では利用できない場合があります。
³Survey123 フィールド アプリのみ。
お気に入りの回答
Survey123 フィールド アプリに回答を入力し、調査を送信またはドラフトとして保存した後、お気に入りの回答を設定することで、それ以降の調査で使用できるようになります。 右上隅のメニューを使用することで、調査の現在の状態を設定し、回答をお気に入りとして使用できます。
お気に入りの回答を設定した後、メニューを開いて [お気に入りから回答を貼り付け] をクリックすることで、これらの回答を新しい調査に挿入できます。
お気に入りの回答をいつでも変更できるようにする必要がある場合は、これらを現在の調査に入力して、[回答をお気に入りに設定] をクリックします。 フィールドに繰り返しの情報を入力している場合は、現在の回答を使用して以降の調査を事前設定することができます。 お気に入りの回答の設定に使用した調査には、星形のマークが付きます。
注意:
[送信] フォルダーが無効化されている場合、送信された調査をお気に入りの回答に使用することはできません。 その場合、お気に入りの回答を含む調査をドラフトとして保存すると、[お気に入りから回答を貼り付け] オプションを有効にすることができます。
CSV データ
デバイスに保存されている情報で回答を設定することで、調査の入力にかかる時間を最小化できます。 この情報は、以前の調査から収集したデータである場合や、単一の回答のユーザーのエントリに基づいて複数の回答を提供する場合があります。
回答を事前設定しておくと、対象物検査の調査で役立ちます。 (タイプ入力やバー コード スキャンなどで) 対象物 ID 番号を入力することで、その対象物の詳細を .csv ファイルから取得して、その他の質問 (場所、最終検査日、最終検査時の条件など) の回答に使用できます。
こうした回答の設定方法の詳細については、「CSV からの値の取得」をご参照ください。
注意:
.csv ファイルに列ヘッダーがないか、ファイルの行の末尾に後続のカンマがある場合は、調査への .csv ファイルのインポートが失敗します。