XLSForm は select_one (1 つだけの回答を選択)、select_multiple (複数の回答を選択)、および rank (選択肢のリストを順序付け) の質問をサポートしています。 複数の選択肢の質問を記述するには、Excel ワークブックに choices ワークシートを追加する必要があります。 select_one の質問の例を次に示します。
survey ワークシートの yes_no は、choices ワークシートの list name 列の yes_no と一致する必要があります。 これにより、特定の質問に対して、回答の選択肢の正しいリストがフォームに表示されるようになります。
デフォルトでは、調査の公開時に、調査のフィーチャ レイヤーに select_one 質問の選択肢がコード値ドメインとして追加されます。 公開プロセス中にドメインの作成を無効化できます。 詳細については、「公開オプション」をご参照ください。
select_one 質問の選択肢を変更して調査を再度公開すると、変更の概要が Survey123 Connect に表示され、フィーチャ レイヤーのドメインにそれらの変更を適用するかどうかを決定できます。 詳細については、「調査の更新」をご参照ください。
注意:
重複する選択肢名がある選択リストを使用する場合、次の制限があります。
- 重複する選択肢名は、select_multiple の質問ではサポートされていません。
- 重複する選択肢名は、多言語の調査ではサポートされていません。
- jr:choice-name() 関数は、リスト内で最初の重複する選択肢のラベルを返します。
- [受信トレイ]、[ドラフト]、[送信トレイ]、[送信済み]、または [概要] フォルダーから開くと、select_one の質問はリスト内で最初の重複する選択肢に戻ります。
次のように、複数回答を選択可能な、複数の選択肢の質問を追加することもできます。
デフォルトでは、これらの選択肢は choices ワークシートで設定された順序で表示されます。 さらに、parameters 列に randomize=true と入力することで、選択肢の表示順をランダムにするオプションもあります。
注意:
select_multiple または rank の質問で収集されたすべての値は、カンマ区切りのリストとして保存されるため、選択リストの名前の列にカンマを使用しないでください。 また、select_multiple および rank の質問は、select_one の質問により送信される名前とラベルではなく、選択の名前だけをフィーチャ レイヤーに送信することに注意してください。
rank の質問の値は、ユーザーによって選択肢の順序が変更されるまで空のままです。 デフォルト値が設定されている場合は、ユーザーによって選択肢の順序が変更されなければ、そのデフォルトの順序が適用されます。
select_multiple の質問に対する個々の回答は、selected-at 関数を使用して返すことができます。 以下は、select_multiple の質問に対する最初の回答の名前値を返します。
selected-at(${species}, 0)
回答のラベルを送信するには、jr:choice-name 関数を使用できます。 同じ select_multiple の質問に対する 2 番目の回答のラベル値を取得するには、以下を使用します。
jr:choice-name(selected-at(${species}, 1), '${species}')
その他の指定
複数の選択肢の質問では、希望する選択肢がリストにないときに、その他を選択するオプションを調査に含めることがあります。 この場合、回答者にその他オプションを指定するように求めることができます。 これを行うには、XLSForm で手動による方法または組み込みによる方法を使用できます。 組み込みによる方法の方が手動による方法よりも短時間かつ簡単に構成できますが、いくつかの制約があります。
手動による方法
手動による方法では、other 選択肢の名前とラベル、およびその他の回答を収集するテキストの質問の名前とラベルを指定できるため、この方法が推奨されます。 これらの名前とラベルの翻訳を入力できます。 テキストの質問に制約と表示設定を適用したり、質問を必須に設定したりすることもできます。
最初に、choices ワークシート上の質問の選択リストに other 選択肢を追加します。 リスト内の他の選択肢に指定したときと同様に、この選択肢の名前とラベルを指定します。 次の例では、color 選択リストに other という名前の選択肢があります。
survey ワークシートで、その他の回答を収集するテキストの質問を追加します。 other 選択肢を選択したときにだけテキストの質問がたずねられるようにするため、条件式を追加します。 次の例では、select_one 質問の回答が other の場合に other_color 質問がたずねられます。
多言語の調査の場合、質問と選択肢を翻訳できます。 次の例では、survey ワークシート上で select_one 質問とテキストの質問の両方にフランス語とギリシャ語の翻訳が用意されています。
翻訳は choices ワークシート上の other を含む選択肢にも用意されています。
組み込みによる方法
この方法では、Survey123 Connect はその他の回答を収集するために自動的に other 選択肢を作成します。 この方法を使用するには、survey ワークシートの [type] 列内の選択リスト名の後ろに「or_other」と入力します。 質問の選択肢のリストに選択肢として [Other] が追加されます。 選択肢として [Other] を選択すると、質問として [Specify other] が表示され、ユーザーは独自の回答を入力できるようになります。 この回答を保存するために、Survey123 Connect では、_other の前に複数の選択肢がある質問の名前を付けた追加のフィールド (例: favorite_toppings_other) がフィーチャ レイヤーに自動的に作成されます。 次のようになります。
注意:
質問 [Specify other] のラベルは英語以外の言語では表示されません。
既存のフィーチャ レイヤーから調査を作成する場合、質問 [Specify other] のフィールドは自動的に作成されないため、調査は公開されません。 「_other」の前に複数の選択肢がある質問の名前を付けて (例: 「favorite_toppings_other」)、質問 [Specify other] 用のフィールドを手動でフィーチャ レイヤーに作成する必要があります。
外部の選択リスト
select_one 質問と select_multiple 質問の選択リストは、外部の .csv ファイルに保存できます。 これは、非常に長い選択リスト、複数の選択リストを含む調査、および Survey123 以外で管理される選択リストに最適です。 外部の選択リストを外部ファイルからの選択と混同しないようにします。外部ファイルからの選択では、選択肢を追加のワークシートに一覧表示する必要があります。
.csv ファイルには name 列と label 列が含まれる必要があります。
注意:
.csv ファイルに列ヘッダーがないか、ファイルの行の末尾に後続のカンマがある場合は、調査へのファイルのインポートが失敗します。
最適な結果を得るためには、UTF-8 文字エンコーディングを使用して .csv ファイルをエンコードしてください。 Microsoft Excel を使用して .csv ファイルを作成している場合は、「CSV UTF-8」で保存します。
翻訳された label 列を .csv ファイルに含めることができますが、翻訳された選択肢は Survey123 Connect と Survey123 フィールド アプリでのみ表示され、Survey123 Web アプリでは表示されません。
外部の選択リストに質問を含めるには、質問タイプ (select_one_from_file または select_multiple_from_file) を入力し、その後に .csv ファイルの名前を続けます (例: select_one_from_file CoverType.csv)。 ファイル名には大文字と小文字の区別があり、スペースを含めることはできません。
.csv ファイルは 2 つの方法で追加できます。調査の media フォルダーに手動で配置する方法か、ArcGIS でホストされている .csv ファイルにリンクする方法です。
ヒント:
選択肢リストの CSV への変換ツールを実行し、choices ワークシートから .csv ファイルに選択肢リストを自動的に移行します。
.csv ファイルをリンク
ArcGIS コンテンツの .csv ファイルを調査にリンクさせるには、次の手順を実行します。
- .csv ファイルが ArcGIS Online または ArcGIS Enterprise でホストされており、調査と同じ共有権限を持っていることを確認します。
- コンテンツのリンクを行う前に、調査が ArcGIS に公開されていることを確認します。
- Survey123 Connect で調査を開き、[リンクされたコンテンツ] タブをクリックします。 [リンク コンテンツ] ボタンをクリックし、[CSV] を選択して、リンクする .csv ファイルを参照して選択します。
フォームのプレビューで、リンクされた .csv ファイルの選択肢を表示するには、Survey123 Connect の [リンク コンテンツ] タブでダウンロード ボタン をクリックします。 これにより、.csv ファイルのコピーが調査の media フォルダーに配置されます。 Survey123 フィールド アプリでは、リンクされたファイルが調査と一緒に自動的にダウンロードされます。
調査の media フォルダーに .csv ファイルを手動で配置し、後から同じ名前の .csv ファイルを ArcGIS にアップロードして、それを調査にリンクさせると、調査内の .csv ファイルはリンクされたコンテンツで更新されます (リンクされたコンテンツの方が新しい場合)。
選択肢リストの CSV への変換
Survey123 Connect の [選択肢リストの CSV への変換] ツールを実行し、choices ワークシートからメディア フォルダー内の新しい .csv ファイルに、指定された選択肢リストを自動的に移行します。 また、このツールは、select_one_from_file および select_multiple_from_file の質問タイプを使用するよう、調査ワークシート内の対応する質問を修正します。
このツールを実行するには、次の手順に従います。
- ツールを実行できるよう、Python の Survey123 Connect 環境を構成します。 詳細については、「Python の構成」をご参照ください。
- 調査の XLSForm を開きます。 [choices] ワークシートに「esri_tool_convert_csv」という列を追加します。 外部選択肢リストに変換したい各選択肢リストの少なくとも 1 行に「yes」値を追加します。 編集したファイルを保存して閉じます。
- Survey123 Connect で調査を開き、[ツール] をクリックして [選択肢リストの CSV への変換] を選択します。
変換が完了すると、移行した各選択肢リストのメディア フォルダーに .csv ファイルが保存されます。 ファイル名は、元の選択肢リスト名の値 (list_name 列) と一致します。 choices ワークシートが更新され、移行されていない残りのリストのみが表示されます。 しかし、オリジナルのカスタム列ヘッダーは含まれたままです。 survey ワークシートで、該当する select_one および select_multiple の質問を select_one_from_file および select_multiple_from_file に変更し、新しい外部選択肢リストを参照するようにします。 元の choices ワークシートは choices_backup ワークシートに保存されるので、結果を確認したり、元に戻したりできます。 backup ワークシートは保持することも削除することもできます。
ツールは、rank の質問、table-list グループ、または検索の表示設定を持つ質問で使用される選択肢リストは変換しません。 これらの選択肢リストを使用する質問は、調査では変更されません。
ツールがサポートされていない質問を検出すると、影響を受ける選択肢リスト名を持つ .xlsx ファイルがデバッグ フォルダーに作成されます。 このファイルは、次のフォルダーにあります。
C:\Users\<username>\ArcGIS\My Survey Designs\<surveyName>\debug\convertchoicelists