Survey123 Web サイトのレポート機能を使用すると、独自のカスタム テンプレートを設計し、複数のレポートを一度に生成できます。
レポートには、次のものを含めることができます。
- サマリー セクション
- 単一の調査レコード
- 単一の調査レコードとサマリー セクション
- 複数の調査レコード
- 複数の調査レコードとサマリー セクション
注意:
レポートの印刷は ArcGIS Online プレミアム サービスなので、クレジットを消費します。 詳細については、「レポートの印刷」をご参照ください。
ArcGIS Enterprise でのレポートの印刷では、クレジットは消費されませんが、制限事項があります。
レポート テンプレートは Microsoft Word ファイル (.docx) で、特定の構文を使用するプレースホルダー テキストを提供します。 レポートを印刷するとき、このプレースホルダー テキストが、調査の回答の該当フィールドの内容に置き換えられます。 このプレースホルダー テキストは、任意の書式、テーブル、画像、その他の個別設定で使用でき、ニーズに合わせたテンプレートを作成できます。
テンプレートを作成するには、[データ] タブのマップ上部のバーにある [レポート] ボタンをクリックして、[テンプレートの管理] をクリックします。 新しいウィンドウが表示され、サンプルのダウンロード、新規テンプレートのアップロード、既存テンプレートの名前およびサマリーの編集を行えます。 [新規テンプレート] をクリックすると、新しいレポート テンプレートのアップロードを行えると同時に、アップロードしたテンプレートの名前とサマリーを指定できます。 あるいは、調査に基づいてサンプル テンプレートをダウンロードする [サンプル テンプレートのダウンロード] リンクを指定できます。
注意:
レポート テンプレートをアップロードできるのは、調査の所有者と組織の管理者だけです。
調査の結果をすべての人、組織、グループで共有すると、調査に関連付けられたレポート テンプレートも共有されます。
式
質問への回答は、名前を中括弧 ({ } など) で囲み、ドル記号を前に付けることで、レポート テンプレートに表示できます。 式に含まれる文字列値は、二重引用符で囲む必要があります。
以下により、「firstname」というテキストの質問からの回答が表示されます。
${firstname}
質問に対する回答をレポートに表示するだけでなく、キーワードを使用してその他の役立つ情報を表示することもできます。 以下により、レポートを印刷する際に現在の日付と時刻が表示されます。
${$date}
結果が配列の場合、中括弧内で開始タグとして「#」、終了タグとして「/」を使用することで、その配列を反復処理することができます。 以下により、すべての画像ファイルが別々の行で出力されます。
${#image1}
${$file}
${/}
式を使用すると、回答の表示方法を調整することもできます。 式には、単一の質問の名前またはキーワード (上記のとおり)、1 つ以上の質問またはキーワードを含む計算、または回答のスタイル設定または制約を行うためのメソッドとパラメーターを含む質問の名前またはキーワードを使用できます。 式は次の表記を使用します
${questionname or keyword | method:parameter}
式には複数のメソッドまたはパラメーターを含めるか、どちらも含めないよう指定できます。 パラメーターには、他の質問からの値か、固定値を指定します。
次の式は、「floweringtrees」という数値の質問を、「totaltrees」という数値の質問で除算した計算を表示します。 同じ式の複数の質問を参照する場合、個々の質問の名前を直接指定できます。中括弧を使用する必要はありません。
${floweringtrees / totaltrees}
次の式は、場所の質問の X 座標値を表示します。ここで「getValue」はメソッドで、「x」はパラメーターになります。
${location | getValue:"x"}
「fruitcolor」という質問への回答が「red」ではない場合、次の式は true と評価されます。
${if fruitcolor!="red"}The fruit is not red.${/}
文字列は、式の中でプラス記号を使用して連結できます。 この式では、この連結を使用して、field_0 と呼ばれる質問のコンテンツを QR コード生成サービスに渡し、質問への回答に対する QR コードを作成します。
${$image | src:"https://barcode.tec-it.com/barcode.ashx?code=QRCode&data="+field_0}
すべての質問タイプが式とメソッドをサポートしているわけではありません。 次の表に、メソッドとパラメーター、および質問タイプとの対応を示します。
方法 | パラメーター | Connect の質問タイプ | Web デザイナーの質問タイプ | 説明 |
---|---|---|---|---|
getValue | - | すべての質問タイプ | すべての質問タイプ | フィーチャ レイヤーから未加工データ値を取得するか、添付ファイルから未加工の画像を取得します。 |
getValue | x、y、z、wkid | geopoint | マップ | 指定した空間参照で、X、Y、Z 座標値を個別に取得します。 wkid パラメーターは任意です。省略した場合は、フィーチャ レイヤーの空間参照と同じになります。 |
getValue | length, area, unit, measurement type | geotrace, geoshape | マップ | ポリラインの長さ、ポリゴンの周囲長または面積を、指定した単位で返します。また、その計測値が平面であるか測地線であるかも返します。 デフォルトの計測タイプは測地線です。 |
getValue | name, size | image, audio, file | 画像、署名、オーディオ、ファイル | 添付ファイルのファイル名またはサイズを返します。 |
getValue | width, height, x, y, date, time, direction | image | 画像、署名 | 幅と高さは、画像の幅と高さの整数値をピクセル単位で返します。X、Y、日付、時間、方向は、画像 EXIF (ある場合) から読み取った値を返します。 |
getValue | count | begin repeat, image, audio, file | 繰り返し、画像、署名、オーディオ、ファイル | repeat または添付ファイルの総数を返します。 |
getValue | 位置 | begin repeat, image, audio, file | 繰り返し、画像、署名、オーディオ、ファイル | 配列内の 1 から始まる位置と同じ整数を返します。 |
getValue | duration | audio, file | オーディオ、ファイル | 録音記録の長さを秒単位で返します。 注意:Safari を使用している場合、Web アプリで収集された回答内の期間は返されません。 |
appearance | multiline | text | マルチ テキスト | 文字列の改行を保持するために使用されます。 appearance を指定しない場合、回答は単一行の文字列を返します。 |
appearance | bullets | select_multiple | 複数選択 | 回答を箇条書き形式で返します。 |
checked | choice name | select_one、select_multiple | 複数選択、単一選択、単一選択グリッド、ドロップダウン、リッカート尺度、評価 | フィールド値が choice name と同じである場合は、オンになったチェックボックスを返します。それ以外の場合は、オフになったチェックボックスを返します。 |
selected | choice name | select_one、select_multiple | 複数選択、単一選択、単一選択グリッド、ドロップダウン、リッカート尺度、評価 | コード値ドメインが存在する場合、フィールド値が choice name に一致すれば true を返します。それ以外の場合は false を返します。 |
countSelected | - | select_one、select_multiple | 複数選択、単一選択、単一選択グリッド、ドロップダウン、リッカート尺度、評価 | 選択された選択肢の数を返します。 |
selectedAt | index | select_one、select_multiple | 複数選択、単一選択、単一選択グリッド、ドロップダウン、リッカート尺度、評価 | 選択肢リストのインデックス位置の文字列を返します。 インデックスはゼロから始まります。 |
locale | 言語コード | date、dateTime、start、end、decimal | 日付、日時、数値 | 現地の日時と数値を返します。 |
format | 文字列の形式 | date、dateTime、integer、decimal、start、end | 日付、日時 | 書式設定された日付文字列を返します。 |
utcOffset | オフセットの値 | date、dateTime、start、end | 日付、日時 | UTC オフセット値でシフトした日付または日時の値を返します。 |
mapSettings | Web マップ アイテム ID、マップ縮尺 | ジオポイント、ジオトレース、ジオシェープ | マップ | マップ画像を印刷する際、ベースマップと縮尺を指定します。 レガシー:マップと mapScale で置き換えられます。 |
mapExtent | xmin、ymin、xmax、ymax、wkid | ジオポイント、ジオトレース、ジオシェープ | マップ | マップ画像を印刷するときに、マップの固定範囲を指定します。 wkid パラメーターは任意で、省略した場合は 4326 (WGS 1984) に設定されます。 |
map | Web マップ アイテム ID | ジオポイント、ジオトレース、ジオシェープ | マップ | マップ画像を印刷する際、ベースマップを指定します。 |
mapScale | マップ縮尺 | ジオポイント、ジオトレース、ジオシェープ | マップ | マップ画像を印刷する際、マップ縮尺を指定します。 |
mapFilters | Web マップのレイヤー ID、JSON、クエリ パラメーター | ジオポイント、ジオトレース、ジオシェープ | マップ | マップ画像を印刷する際、Web マップのフィーチャ レイヤーで 1 つ以上のフィルターを指定します。 |
rotate | degrees | geopoint, geotrace, geoshape, image | マップ、画像 | マップまたは画像の回転角を指定します。 |
drawingInfo | currentLayer、フィーチャ レイヤーの URL | ジオポイント、ジオトレース、ジオシェープ | マップ | マップ画像を印刷する際、シンボル、ラベル、透過表示などの描画情報を指定します。 |
src | 画像 URL | - | - | ダイナミック画像要素のソース URL を指定します。 |
size | width, height, max width, max height | image | 画像 | 印刷した画像のサイズを指定します。 |
Round | places | decimal、geopoint、geoshape、geotrace | 番号 | 小数値を、指定した小数点以下の桁数に四捨五入します。 |
useGrouping | boolean | decimal | 番号 | true の場合、ロケールによって決定されたグループ化区切り記号付きの数値が返され、false の場合は区切り記号が使用されません。 |
toFixed | places | decimal、geopoint、geoshape、geotrace | 番号 | 小数点の記号の後に固定の桁数を指定します。 固定の桁数に合わせるために、必要に応じてゼロで埋めます。 |
次の表に、式で使用できるすべてのキーワードを示します。
キーワード | 説明 |
---|---|
$date | レポートを印刷する際に現在の日付と時刻を挿入します。 デフォルトでは、現在のロケール形式を使用して現在の日付が出力されます。 例:
|
$image | レポートに画像エレメントを挿入します。 画像 URL を指定するには、src メソッドを使用します。 例:
|
$map | 調査の質問を参照せずに、レポートにマップ エレメントを挿入します。 例:
|
$shape | マップ上の現在のフィーチャのジオメトリ (ポイント、ポリライン、ポリゴン) を印刷します。 例:
|
$attachment | 現在のフィーチャの最初の添付ファイル、またはすべての添付ファイルを表します。 例:
すべての添付ファイルを反復処理するには、開始タグと終了タグを含めます。
|
$file | 添付ファイルの調査の質問の複数のファイルや、フィーチャのアタッチメント ファイルを反復処理する際に、現在のファイルを表します。 例:
|
$feature | フィーチャの配列内の現在のフィーチャを表します。 例:
|
$layers["<layername>"] または $layers[<layerId>] | 調査レイヤーと同じフィーチャ サービス内のレイヤーを名前または ID で参照します。 例:
|
[テンプレートの管理] ウィンドウで [クイック リファレンス] を選択し、式のサンプル構文を含むページを開き、調査の個々の質問のレポートで表示される回答を修正します。 この構文をコピーするには、[クリップボードにコピー] ボタンをクリックし、構文をテンプレート ドキュメントに貼り付けます。 テンプレートをアップロードすると、[レポート] ウィンドウのオプションを使用してレポートを生成します。 詳細については、「レポートの印刷」をご参照ください。
以下のセクションでは、各質問タイプの式の一般的な使用シナリオについて説明し、例を示します。
Text
Survey123 Web デザイナーで [複数行テキスト] の質問を追加したり、Survey123 Connect でテキストの質問に multiline 表示設定を使用したりして作成した複数行テキストの質問は、デフォルトではキャリッジ リターンを無視し、回答を単一ブロックのテキストで表示します。 式を使用すると、次のように、質問に対する回答をキャリッジ リターンを付けて表示できます。
${multilinetext1 | appearance:"multiline"}
この式は、専用の行に配置しないとエラーになります。
数値
基本的な算術演算を数値の質問で使用することができ、算術演算を使用して、それらの質問に対する回答の加算、減算、乗算、除算を実行したり、剰余を求めたりすることができます。 以下に例を示します。
${number1 - 15}
${number1 * 6}
${number1 / number2}
${number1 % number2}
ヒント:
式が複雑な数式を含んでいる場合、レポート生成が期待する結果を確実に生成するように、括弧を使用することを検討してください。
小数の質問については、round 式を使用し、値を丸める小数桁の最大数を設定します。 次の例では、数値 3.141592 を小数点以下 4 桁の 3.1416 に丸めています。
${decimal1 | round:4}
小数の質問については、toFixed 式を使用し、値を丸める小数桁の最大数を設定します。 次の例では、3.14 の小数点以下の表示桁数を 3.140 と固定しています。
${decimal1 | toFixed:3}
フォーマット式を使用すると、プレースホルダー文字を使用し、数値の質問に対する回答を特定の方法で表示できます。 次のプレースホルダー文字がサポートされます。
文字 | 説明 |
---|---|
. | 小数点の記号。 |
, | 式の中で使用する場合、グループ区切り記号を追加します。グループ サイズは、最初のグループ区切り記号のプレースホルダーと小数点記号のプレースホルダー、あるいは式末尾の間の桁数によって決定されます。 追加しなければ、グループ区切り記号は使用されません。 |
0 | 必要な桁数。 回答に含まれる桁数が、必要な桁数に満たない場合は、ゼロが埋め込まれます。 |
# | オプションの桁数。 回答に含まれる桁数が必要以上に多い場合は、数値は丸められます。 |
ヒント:
小数点記号と桁区切り記号は、選択したロケールに応じて印刷結果に表示されます。
次の例では、小数点以下の最大桁数が 3 桁で、桁区切り記号を含み、必要に応じて数値を丸めた回答を返します。
${decimal1 | format:"#,##0.###"}
画像およびその他の添付ファイル
画像の質問の場合、レポートの画像が一定のサイズになるように、サイズを設定できます。 この式の形式は以下のとおりです。
${image1 | size:width:height:max_width:max_height}
width と height の値は、画像の設定サイズを制御します。単位はピクセルです。 これらの値は式に必要ですが、値に 0 を指定すると、画像の寸法の制限がなくなります。 たとえば、次の式は画像の幅を強制的に 300 ピクセルに設定しますが、画像の縦横比は維持します。
${image1 | size:300:0}
最大の高さと幅の値は、画像の最大サイズを制限し、オプションの値です。 次の例では、画像の幅を強制的に 300 ピクセルに設定し、画像の高さは 200 ピクセル以下に制限します。
${image1 | size:300:0:0:200}
rotate メソッドを使用して、画像の時計回りの回転を定義できます。 0 から 360 の値を指定できます。
${image1 | size:300:0:0:200 | rotate:90}
画像の質問では、画像の詳細を抽出して調査の回答に表示することもできます。 これを使用して、次のように画像のファイル名とサイズを表示できます
${image1 | getValue:"name"}
${image1 | getValue:"size"}
${image1 | getValue:"width"}
${image1 | getValue:"height"}
同じ方法を使用して、次のように画像から EXIF データを表示し、写真が撮られた場所と日時の詳細を表示できます。
${image1 | getValue:"x"}
${image1 | getValue:"y"}
${image1 | getValue:"date"}
${image1 | getValue:"time"}
${image1 | getValue:"direction"}
元の画像をフル サイズと完全な品質で表示するには、メソッドなしで式を使用するか、値を指定しないで getValue 式を使用します。
${image1} または ${image1 | getValue:""}
元の画像を完全な品質と指定サイズで表示するには、getValue 式と size 式を併用します。
${image1 | getValue:"" | size:300:0}
注意:
画像のサイズを設定するとともに、他の式パラメーターを使用する場合、size を式の最後に配置する必要があります。
日時は EXIF データ内で文字列として格納されるため、日時の質問に対して format 式を使用して、これらの値をレポート内で書式設定することはできません。 これらの値の書式設定が不可欠な場合は、pulldata("@exif") 関数を使用して調査の一部として EXIF 抽出を実行することを検討してください。 詳細については、「画像」をご参照ください。
上の getValue 式は、画像、オーディオ、ファイルの質問の結果など、任意のタイプの添付ファイルの有効なプロパティからデータを抽出する際にも使用できます。 すべての添付ファイルから抽出できるプロパティは、次のとおりです。
${file1 | getValue:"name"}
${file1 | getValue:"size"}
${file1 | getValue:"globalId"}
${file1 | getValue:"id"}
${file1 | getValue:"contentType"}
${file1 | getValue:"keywords"}
フィーチャに添付されたファイルがすべて画像の場合は、各画像が専用の行に配置されている次のプレースホルダーを使用します。
${#$attachment}
${$file}
${/}
回答で同じ質問に送信された複数の画像を返すには、$attachment の代わりに画像の質問の名前を使用します。
${#image1}
${$file}
${/}
この方法は、10.8.1 未満のバージョンの ArcGIS Enterprise で画像を表示する、または Survey123 の外部でフィーチャに追加された画像を表示する場合に役立ちます。 次の例では、フィーチャに添付されたすべてのファイルの名前が表示されます。
${#$attachment}
${$file|getValue:"name"}
${/}
オンラインの画像を表示するには、$image キーワードを参照するときに、質問の名前ではなく src 式でソース URL を指定します。
${$image |
src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"
| size:400:0}
マップ
マップを構成するすべての質問 (ジオポイント、ジオトレース、ジオシェープを含む) には共通のメソッドとパラメーターがあり、これを使用してレポートでの表示を変更できます。
デフォルトでは、レポート内のマップは質問用に設定された Web マップを使用します。 マップ縮尺が 0 に設定されているかパラメーターが省略されている場合、マップ縮尺は、マップ内のフィーチャによって次のように決定されます。
- マップ上にポイント フィーチャが 1 つしかない場合、マップ縮尺は質問用に設定された縮尺と一致します。
- マップ上にラインまたはポリゴン フィーチャが 1 つしかない場合、マップ縮尺はフィーチャの範囲によって決定されます。
- マップ上に複数のフィーチャがある場合、縮尺はすべてのフィーチャの範囲によって決定されます。
マップの質問は、Web マップ アイテム ID とマップ縮尺をオプションのパラメーターとして設定できます。 以下の例では、1:100,000 のマップ縮尺が使用されます。
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}
すべてのマップの質問については、rotate メソッドを使用し、ビューに対して真北の時計回りを定義します。 0 から 360 の値を指定できます。
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}
Web マップのアイテム ID を空の文字列のままにした場合、質問のデフォルト ベースマップが使用されます。 マップ縮尺を 0 に設定するか、このパラメーターを省略する場合、マップは質問に設定されているデフォルト範囲を使用します。
mapExtent メソッドを使用すると、レポートのマップ範囲を明示的に設定できます。 次の例では、東京のマップの固定範囲を示します。
${location | mapExtent:139.7:35.6:139.9:35.8:4326}
マップの質問は、画像の質問に対してサイズの式もサポートしています。 この式を使用して、次の例に示すように、レポートに表示されるマップの解像度を制御できます。
${location | size:400:400}
map、mapScale、および size の式を一緒に使用すると、次の例に示すように、Web マップ ID とマップ縮尺、およびマップ画像の解像度を指定できます。
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
注意:
マップのサイズを設定するとともに、他の式メソッドを使用する場合、size を式の最後に配置する必要があります。
マップに多数のレコードが含まれる場合、mapFilters メソッドを使用し、表示するレコードを制限できます。 次の例では、where パラメーターを使用して、POP2000 が 999999 より大きいレコードを示すレイヤーが 1 つしかない Web マップをフィルターします。
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}
次の mapFilters の例では、最初のパラメーターは cities レイヤー (レイヤー ID は 18ece64a1fc-layer-5) をフィルターして、カリフォルニア州で人口が最大の最初の 3 つのレコードのみを表示します。 最初のパラメーターとコロンで区切られた 2 つ目のパラメーターは、states レイヤー (レイヤー ID は 18ece64a1fc-layer-6) をフィルターして、カリフォルニア州のみを表示します。
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}
注意:
レイヤー ID は、Web マップ JSON のフィーチャ レイヤー オブジェクトのプロパティです。
デフォルトでは、マップの質問は、フィーチャ レイヤーで設定されたシンボルにかかわらず、デフォルトのマップ シンボルを使用して表示されます。 drawingInfo メソッドを使用し、特定のフィーチャ レイヤーに格納された描画情報を抽出し、使用することができます (使用されるシンボル、ラベル、透過表示など)。 この情報は、現在のレイヤーから指定することも、指定された URL を通じて、特定のフィーチャ レイヤーから指定することもできます。
${location | drawingInfo:"currentLayer"}
${location | drawingInfo:"https://.../FeatureServer/0"}
マップの質問が調査に含まれていない場合、または関連する調査のないフィーチャ レイヤーのレポートを作成している場合でも、${$shape} プレースホルダーを使用してレコードのジオメトリを返すことができます。
サマリー セクションでは、マップの質問の式は、質問の入力内にある複数のジオメトリを表示します。 個々のレポートの他の回答を含める場合は、where 式を !important タグで指定します。 詳細については、「その他の構文」をご参照ください。 次の式は、レイヤーのすべてのジオメトリを表示します。ここで、ステータス フィールド値は「broken」に等しくなります。
${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}
注意:
上記の例では、マップ縮尺が省略されています。 マップ縮尺を 0 に設定するかパラメーターを省略する場合で、マップに複数のレコードが含まれている場合、マップはすべてのレコードの結合された範囲を使用します。
レイヤー内のすべてのジオメトリが表示されるよう、where 式が常に true ステートメントになるように設定できます。
${location | where:"1=1 !important"}
これは、repeat 内ですべてのポイントを表示するためにも使用されます。
${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}
$shape キーワードは、複数のマップ ジオメトリを返すためにも使用されます。
${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}
$map キーワードは、調査の質問を参照しないマップを印刷するために使用されます。
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
ジオポイント
ジオポイントの質問の場合、次のように式を使用して、質問から緯度と経度の値を表示できます。
${location | getValue:"x"}
${location | getValue:"y"}
1 つの式で両方の値は表示できません。両方の値が必要な場合は、2 つの式を使用する必要があります。
ヒント:
同様の式を使用して高度値を表示することもできますが、基本となるフィーチャ サービスが Z 値をサポートしている場合に限ります。
${location | getValue:"z"}
デフォルトでは、緯度、経度、高度の値は、調査の回答で示された元の値を切詰めることなく返します。 これらの値は、レポートで必要とされる値よりもはるかに長いことが多いので、round 式または toFixed 式を使用し、値を特定の小数桁に丸めることも検討してください。
${location | getValue:"x" | round:3}
${location | getValue:"x" | toFixed:3}
デフォルトでは、これらの値は、調査のフィーチャ レイヤーで使用されるものと同じ空間参照に出力されます。 WKID を指定すると、異なる空間参照を追加パラメーターとして設定できます。
${location | getValue:"x":4326}
ジオトレースとジオシェープ
ジオトレースとジオシェープの質問については、getValue 式を使用し、それぞれ行の長さや、ポリゴンの周囲長を表示します。
${polyline1 | getValue:"length":"meters":"planar"}
ジオシェープの質問では、getValue 式を使用してポリゴンの面積を表示することもできます。
${polygon1 | getValue:"area":"hectares":"geodesic"}
単位と計算の方法は、オプションのパラメーターです。 長さでは、次の単位を使用できます。
- feet
- kilometers
- meters
- miles
- nautical-miles
- yards
面積では、次の単位を使用できます。
- acres
- hectares
- square-miles
- square-kilometers
- square-meters
- square-feet
- square-yards
または、ArcGIS REST API がサポートする esriSRUnitType Constants または esriSRUnit2Type Constants のいずれかを使用することもできます。 式では、次のように、定数の数値コードを引用符なしで使用します。
${polyline1 | getValue:"length":109002:"geodesic"}
単位を指定しなければ、長さのデフォルト単位は kilometers、面積は square-kilometers です。
方法は、geodesic または planar を指定できます。 方法を指定しなければ geodesic がデフォルトで使用されます。
日付、時刻、日時
日付と日時の質問を、各地域の書式に適した形で表示するには、式を使用して、指定したロケールに合わせて質問の書式を設定します。 式には、まず locale メソッドを配置し、ロケール コードは小文字で入力する必要があります。
${datetime | locale:"pt-br"}
注意:
特定の言語のロケール コードについては、Wikipedia の「List of ISO 639-1 codes」をご参照ください。 ただし、これらの言語がすべて Survey123 でサポートされているわけではないので、ご注意ください。
フィーチャ レイヤーのすべての日付と日時の値は協定世界時 (UTC) で格納されます。 デフォルトでは、レポートで返されるすべての日付値と日時のタイム ゾーンがレポート生成をリクエストした Web ブラウザーと同じものになります。 utcOffset メソッドを使用すると、レポート内のこれらの値の表示を変更して、特定のタイム ゾーンに合わせることができます。 次の式は、日時の質問の回答を UTC から 1 時間オフセットして表示します。
${datetime | utcOffset:"+01:00"}
utcOffset メソッドは、+01:00、+0100、+01 の形式をサポートし、同じ結果を返します。 このメソッドを使用して、回答の送信時間の表示を変更することもできます。 utcOffset が時間の質問では機能しないということに注意してください。
日付や日時の質問の場合、式を使用して、日、月、年にそれぞれ DD、MM、YYYY のプレースホルダーを使用して日付の書式を設定できます。 次の式は、年を省略して、日と月のみを表示します。
${date | format:"DD/MM"}
日時の質問で時間の書式を設定することもできます。この場合、時間、分、秒にそれぞれ HH、mm、ss のプレースホルダーを使用します。 次の式は、日、月、時間、分を表示します。
${datetime | format:"DD/MM HH:mm"}
次の例に示すように、format メソッドの値を空白のままにすると、YYYY-MM-DDTHH:mm:ss±HH:mm の ISO 8601 形式で日時を表示できます。
${datetime | format:""}
日時の書式の詳細については、以下の表をご参照ください。
注意:
format メソッドは、式の末尾に配置します。
$date キーワードを使用すると、レポートの生成日時を印刷することができます。 日付、時刻、またはその両方を印刷するかどうかを制御するには、format メソッドを使用します。 次の構文では、レポートの生成日付 (時刻を含まない) が、ロケールのデフォルトの日付形式で印刷されます。
${$date}
次の式は、レポートの生成日時の月、日、年、時間、分を印刷します。
${$date | format:"MM/DD/YYYY HH:mm"}
次の式は、レポートの生成時刻 (日付を含まない) を 12 時間形式の時間、分、秒で表示します。
${$date | format:"h:mm:ss A"}
$date キーワードは、utcOffset や locale メソッドもサポートしています。 format と locale の両方が指定されている場合、locale メソッドは無視されます。
日時形式
次の表に、format メソッドとともに使用してレポートの日時を書式設定できる最も一般的なプレースホルダーを示します。
プレースホルダー | 説明 |
---|---|
YY | 年の後ろの 2 桁。 例: 2023 年は 23 と表示されます。 |
YYYY | 4 桁の年。 例: 2023 年は 2023 と表示されます。 |
M | 1 ~ 12 の月番号。 例: 1 月は 1 と表示されます。 |
MM | 2 桁の月番号。 例: 1 月は 01 と表示されます。 |
MMM | 3 文字で表された月。 例: 1 月は Jan と表示されます。 |
MMMM | 省略されていない月。 例: 1 月は January と表示されます。 |
D キー | 1 ~ 31 の日番号。 例: 月の初日は 1 と表示されます。 |
DD | 2 桁の日番号。 例: 月の初日は 01 と表示されます。 |
Do | 順序接尾辞を含む日番号。 例: 月の初日は 1st と表示されます。 |
H | 24 時間形式の時刻番号。 例: 午後 11 時は 23 と表示されます。 |
HH | 2 桁の 24 時間形式の時刻番号。 例: 午前 2 時は 02 と表示されます。 |
h | 12 時間形式の時刻番号。 例: 午後 11 時は 11 と表示されます。 |
hh | 2 桁の 12 時間形式の時刻番号。 例: 午前 2 時は 02 と表示されます。 |
m | 0 ~ 59 の分番号。 例: 8 分は 8 と表示されます。 |
mm | 2 桁の分番号。 例: 8 分は 08 と表示されます。 |
ss | 2 桁の秒番号。 例: 9 秒は 09 と表示されます。 |
Z | 区切り文字を使用したタイム ゾーン オフセット (時間単位)。 例: -07:00、+13:00 |
ZZ | 区切り文字を使用しないタイム ゾーン オフセット (時間単位)。 例: -0700、+1300 |
x | UNIX のミリ秒単位のタイム スタンプ。 例: 2023 年 5 月 4 日午後 9 時 (GMT) は 1683234000000 と表示されます。 |
X | UNIX タイム スタンプ。 例: 2023 年 5 月 4 日午後 9 時 (GMT) は 1683234000 と表示されます。 |
a | 小文字の午前または午後の表記。 例: 午前は am と表示され、午後は pm と表示されます。 |
A キー | 大文字の午前または午後の表記。 例: 午前は AM と表示され、午後は PM と表示されます。 |
複数の選択肢
単一の選択肢の質問が、プレースホルダーで参照される場合 (${select_one} など)、選択肢のラベルを返します。 単一選択の質問が式で使用される場合、または質問が外部ファイルからの選択を使用する場合、単一選択の質問は選択肢の名前を返します。 次の例では、ラベルではなく、選択肢の名前を条件ステートメントに使用しています。
${if select_one=="choice1Name"}The user selected the first choice.${/}
ラベルではなく選択肢の名前を意図的に表示するには、getValue 式を使用します。
${select_one | getValue:""}
単一の選択肢の質問と複数の選択肢の質問の場合、式を使用して、選択肢の横にチェックボックスを配置できます。これは、質問の回答に応じてオンになります。 選択肢の名前 (選択肢のラベルではない) を使用する必要があります。 次の式は、選択されたフルーツを表示します。
${select_one | checked:"apple"} Apple
${select_one | checked:"pear"} Pear
単一の選択肢と複数の選択肢の質問で [「その他」を許可] が有効になっている場合、other の選択肢の名前を使用します。
${select_one | checked:"other"} Other fruits you like: ${favFruits_other}
複数の選択肢の質問は、選択された選択肢の総数を出力するため、および選択された特定の選択肢を出力するための式をサポートします。
${select_multiple | countSelected}
${choiceQuestion1 | selectedAt:2}
注意:
selectedAt 式は、選択された選択肢のカウントをゼロで開始します。 つまり、${choiceQuestion1 | selectedAt:2} は、3 番目の選択された選択肢を返します。
複数の選択肢の質問では、次のようにすべての選択された選択肢を箇条書きリストとして返す式もサポートされています。
${select_multiple | appearance:"bullets"}
注意:
選択肢のラベルに二重引用符が含まれている場合、その前にバックスラッシュを付ける必要があります。バックスラッシュを付けない場合、レポートが印刷されません。 単一引用符の場合、バックスラッシュは必要ありません。 例を以下に示します。
${select_one | checked:"Service provided by \"Greg's Plumbing\""} Service provided by "Greg's Plumbing"
繰り返し
繰り返しの質問にアクセスするには、繰り返しセクションをテンプレートに追加します。 defects という繰り返しの場合、${#defects} プレースホルダーは繰り返しセクションの開始を示し、${/} は終了を示します。 繰り返し内で質問を指すプレースホルダーは、繰り返しセクションの開始プレースホルダーと終了プレースホルダーの間に存在する必要があります。
注意:
テーブル内の繰り返しの内容を印刷する場合は、開始タグと終了タグが 2 つともテーブル内またはテーブル外に配置されていることを確認します。 これらのタグの 1 つがテーブル内で、もう 1 つがテーブル外の場合、レポートを生成することはできません。 ほとんどの場合、開始タグと終了タグはテーブル内に配置され、開始タグは最初のセル内、終了タグは最後のセル内にあります。
入れ子状の繰り返し内にある質問にアクセスするには、対象となる繰り返しセクションの上にある各繰り返しレイヤーのタグの間に、そのタグを配置します。 例を以下に示します。
${#repeat1}
${#repeat2}
${#repeat3}
${field1InRepeat3}, ${repeat2.field1}, ${repeat1.field1}, ${mainLayer.field1}
${/}
${/}
${/}
レポート式は、${layername} 構文を使用してレイヤー名を参照するときに、ハイフンなどの特殊文字を読み取ることができません。 名前に特殊文字が含まれるレイヤーを参照するときは、特殊文字の場所にアンダースコアを使用してください。 または、$layers キーワードとレイヤー名またはレイヤー ID のいずれかを使用してレイヤーを参照することもできます (例: ${$layers["my layer name"]}、${$layers[0]})。 これは、レイヤー名が重複している場合に役立ちます。
親の繰り返しと同じ名前を持つ繰り返しに含まれるフィールドを参照するには、フィールド名と繰り返し名の両方を含む完全なパス構文を使用します。例: ${sharedName.sharedName}。
繰り返しレコードのインデックスを表示するには、予約済みキーワード $feature で getValue 式を使用します。 この例では、繰り返しの最初のレコードでは 1、2 つ目のレコードでは 2 などと生成します。
${#defects}
${$feature | getValue: "position"}
${/}
レポート クエリ
集約関数を使用して、印刷された回答の値のクエリを生成できます。 これらのクエリは、印刷される回答の数にかかわらず、レポートに 1 回だけ表示されるサマリー セクションに最適です。 詳細については、「レポート クエリ」をご参照ください。
レポートの印刷対象を、回答に関連付けられたすべての繰り返しではなく、特定の繰り返し数のみに制限したい場合は、resultRecordCount メソッドを使用して印刷する繰り返し数を設定します。
${#defects | resultRecordCount:20}...${/}
orderByFields メソッドを使用して、繰り返しが印刷される順序を決定できます。 フィールド名の後に ASC または DESC を付けて宣言すると、そのフィールドの入力に応じて、それぞれ昇順または降順でリピートが印刷されます。
${#defects | orderByFields:"state_name ASC, pop2000 DESC"}...${/}
条件レポートのエレメント
レポートのエレメントは、if ステートメントを使用して、条件付きで表示または非表示にすることができます。 開始の ${if expression} プレースホルダーに式を入力し、条件セグメントの終了を示す ${/} を入力することで、if ステートメントを使用できます。 レポートの一部を表示または非表示にするために使用できる if ステートメントの例を次に示します。
- ${if photo1} では、photo1 の質問が回答された場合にだけ、このセクションが表示されます。
- ${if integer1>0} では、integer1 の質問に対する回答が正の値であった場合にだけ、このセクションが表示されます。
- ${if ((geopoint1 | getValue:"y")>0)} では、ジオポイントが北半球にある場合にだけ、このセクションが表示されます。
- ${if multiple_choice1 | selected:"A"} は、複数の選択肢の質問で選択肢「A」が選択された場合にのみ、このセクションを表示します。
- ${if (repeat1 | getValue:"count")>=3} は、repeat1 に 3 つ以上のレコードを含まれる場合にのみセクションを表示します。
次の例では、high が優先順位の高い単一選択の質問に対して選択されている場合にのみ、2 行目のテキストが表示されます。
${if priority | selected:"high"}
High priority issues must be addressed within seven days.
${/}
回答が質問に対する値を含んでいるかどうかをチェックするには、フィールド名を直接参照する if ステートメントのみを使用し、他の演算子を使用しないでください (例: ${if photo1})。 この形式は、空の文字列、NULL 値、および未定義の値がすべて空の値と見なされることを保証します。 この形式は、文字列、数値、日付、および添付ファイルのフィールド タイプに適用されます。 この形式を繰り返しと共に使用した場合、少なくとも 1 つのインスタンスが繰り返しに存在する限り、このセクションが表示されます。
日時の質問で条件ステートメントを使用するには、エポック時間 (1970 年 1 月 1 日からのミリ秒) を使用して計算します。 たとえば、${if (date1|getValue:"") < 1602735375000} は日付フィールドの値が 2020 年 10 月 14 日よりも古い場合にのみセクションを表示します。 なお、レポート構文には XLSForm の today() 関数または now() 関数に対応するものがないので、レポートの印刷時に対する時間の条件ステートメントを構築することはできません。
if ステートメントでは、次の論理演算子がサポートされています。
演算子 | 説明 |
---|---|
|| | 2 つのステートメントのいずれかが true を返す場合、true になります |
&& | 所定のステートメントの両方が true を返す場合、true になります |
! | ステートメントが true でない場合、true になります |
== | 所定の 2 つの値が互いに等しい場合、true になります |
!= | 所定の 2 つの値が互いに等しくない場合、true になります |
> | 最初の値が 2 つ目の値より大きいかどうかを評価します |
>= | 最初の値が 2 つ目の値以上であるかどうかを評価します。 |
< | 最初の値が 2 つ目の値より小さいかどうかを評価します |
<= | 最初の値が 2 つ目の値以下であるかどうかを評価します。 |
制限事項
レポート テンプレートを使用する場合、次の制限事項が存在します。
- Survey123 Web サイトで繰り返しに適用されたフィルターはレポートでは適用されません。 繰り返しは、レポートで式を使用してのみフィルター処理できます。
- マップが 2014 年 7 月にリリースされたバージョン 2.0 より前の Web マップ バージョンを使用している場合、レポート内にマップは表示されません。
- ArcGIS Enterprise ポータルに有効な SSL 証明書がない場合、レポート内にマップは表示されません。
- レポート テンプレートを使用した印刷は、一般向けではない ArcGIS Enterprise 配置では機能しません。 これを試行すると、[getaddrinfo ENOTFOUND] エラーが発生します。
- レポート テンプレートを使用した印刷は、統合 Windows 認証 (IWA) を使用する ArcGIS Enterprise 配置では機能しません。
- レポート リクエストあたり最大 2,000 のレコードを含めることができます。
- Survey123 Web サイトをユーザーのインフラストラクチャにインストールした場合、レポート API を使用できません。 レポートを生成できるのは、https://survey123.arcgis.com/ を使用した場合のみです。