フィーチャ レポート テンプレート

印刷される調査のデフォルトの書式がニーズに合わない場合や一度に複数のレポートを印刷する必要がある場合、Survey123 Web サイトは、フィーチャ レポートに個別のテンプレートを適用する [レポート テンプレート] 機能としても使用できます。

フィーチャ レポートには、次のものを含めることができます。

  • サマリー セクション
  • 単一の調査レコード
  • 単一の調査レコードとサマリー セクション
  • 複数の調査レコード
  • 複数の調査レコードとサマリー セクション

フィーチャ レポートの印刷は ArcGIS Online プレミアム サービスとなるため、クレジットを消費します。最低 0.5 クレジットが消費されます。レポートに複数の調査レコードが含まれている場合、レポートは調査レコードあたり 0.5 クレジットで請求されます。単一の調査レコードのすべての関連レコードは、無償でフィーチャ レポートに含めることができます。

フィーチャ レポート テンプレートは Microsoft Word ファイル (*.docx) で、特定の構文を使用するプレースホルダー テキストを提供します。フィーチャ レポートを印刷するとき、このプレースホルダー テキストが、調査の回答の該当フィールドの内容に置き換えられます。このプレースホルダー テキストは、任意の書式、テーブル、画像、その他の個別設定で使用でき、ニーズに合わせたテンプレートを作成できます。

新しいテンプレートを適用するには、[データ] タブのマップ上部のバーにある [フィーチャ レポート] ボタンをクリックして、[テンプレートの管理] をクリックします。新しいウィンドウが表示され、既存のテンプレートを選択したり、新しいテンプレートをアップロードしたりできます。[新しいテンプレートのアップロード] をクリックすると、別のウィンドウを開き、調査のフィールド (繰り返し内のフィールドを除く) のプレースホルダーや、アップロードするときのテンプレートの名前とサマリーを表示できます。

フィールド名コードをテンプレート ドキュメント内の適切な場所にコピーするには、[フィーチャ レポート テンプレート] ウィンドウでそのフィールドの上にポインターを置き、[コピー] ボタンをクリックします。あるいは、調査に基づいてサンプル テンプレートをダウンロードするリンクを指定できます。テンプレートをアップロードして選択したら、[生成] をクリックしてレポートを作成します。同時に複数の調査回答のレポートを作成することもできます。

質問のプレースホルダーのテーブル

一部の質問タイプでは、式を使用してレポートに表示される回答を変更することができます。該当する質問には、[フィーチャ レポート テンプレート] ウィンドウでそのフィールドの上にポインターを置いたときに、プレースホルダーの横に [その他のオプションの表示] ボタンが表示されます。

テキスト

Survey123 Web デザイナーで複数行テキストの質問を追加したり、Survey123 Connect でテキストの質問に multiline 表示設定を使用したりして作成した複数行テキストの質問は、デフォルトではキャリッジ リターンを無視し、回答を単一ブロックのテキストで表示します。条件式を使用すると、次のように、質問に対する回答をキャリッジ リターンを付けて表示できます。

${multilinetext1 | appearance:"multiline"}

この条件式は、専用の行に配置しないとエラーになります。

数値

基本的な算術演算を数値の質問で使用することができ、算術演算を使用して、それらの質問に対する回答の加算、減算、乗算、除算を実行したり、剰余を求めたりすることができます。以下に例を示します。

${number1 - 15}

${number1 * 6}

${number1 / number2}

${number1 % number2}

ヒント:

式が複雑な数式を含んでいる場合、レポート生成が期待する結果を確実に生成するように、括弧を使用することを検討してください。

小数の質問については、round 条件式を使用し、値を丸める小数桁の最大数を設定します。次の例では、質問を小数点以下 5 桁に丸めます。

${decimal1 | round:5}

画像およびその他の添付ファイル

画像の質問の場合、フィーチャ レポートの画像が一定のサイズになるように、サイズを設定できます。この式の形式は以下のとおりです。

${image1|size:width:height:max_width:max_height}

width と height の値は、画像の設定サイズを制御します。単位はピクセルです。これらの値は式に必要ですが、値に 0 を指定すると、画像の寸法の制限がなくなります。たとえば、次の式は画像の幅を強制的に 300 ピクセルに設定しますが、画像の縦横比は維持します。

${image1|size:300:0}

最大の高さと幅の値は、画像の最大サイズを制限し、オプションの値です。次の例では、画像の幅を強制的に 300 ピクセルに設定し、画像の高さは 200 ピクセル以下に制限します。

${image1|size:300:0:0:200}

画像の質問では、画像の詳細を抽出して調査の回答に表示することもできます。これを使用して、次のように画像のファイル名とサイズを表示できます

${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|getValue:""}

メモ:

画像のサイズを設定するとともに、他の式パラメーターを使用する場合、size を数式の最後に配置する必要があります。

日時は EXIF データ内で文字列として格納されるため、日時の質問に対して format 式を使用して、これらの値をレポート内で書式設定することはできません。これらの値の書式設定が不可欠な場合は、pulldata() 関数を使用して調査の一部として 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"}
${/}

ジオポイント

ジオポイントの質問の場合、次のように式を使用して、質問から緯度と経度の値を表示できます。

${location|getValue:"x"}

${location|getValue:"y"}

1 つの式で両方の値は表示できません。両方の値が必要な場合は、2 つの式を使用する必要があります。

ヒント:

同様の式を使用して高度値を表示することもできますが、基本となるフィーチャ サービスが Z 値をサポートしている場合に限ります。

${location|getValue:"z"}

デフォルトでは、これらの値は、調査のフィーチャ レイヤーで使用されるものと同じ空間参照に出力されます。WKID を指定すると、異なる空間参照を追加パラメーターとして設定できます。

${location|getValue:"x":4326}

ジオポイントの質問は、値の前に mapSettings: を付けるときに、Web マップのアイテム ID とマップ縮尺をオプションのパラメーターとして設定することもできます。以下の例では、1:100,000 のマップ縮尺が使用されます。

${location|mapSettings:"10df2279f9684e4a9f6a7f08febac2a9":100000}

マップのアイテム ID を空のままにするか、縮尺を 0 に設定した場合、デフォルト ベースマップまたは質問の範囲が使用されます。

ジオポイントの質問は、画像の質問に対してサイズの式もサポートしています。この式を使用して、次の例に示すように、レポートに表示されるマップの解像度を制御できます。

${location|size:400:400}

mapSettingssize の式を一緒に使用すると、次の例に示すように、Web マップ ID とマップ縮尺、およびマップ画像の解像度を指定できます。

${location|mapSettings:"10df2279f9684e4a9f6a7f08febac2a9":100000|size:400:400}

メモ:

マップのサイズを設定するとともに、他の式パラメーターを使用する場合、size を数式の最後に配置する必要があります。

マップの質問が調査に含まれていない場合、または関連する調査のないフィーチャ レイヤーのレポートを作成している場合でも、${$shape} プレースホルダーを使用して質問のジオメトリを返すことができます。

ジオトレースとジオシェープ

ジオトレースとジオシェープの質問については、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 がデフォルトで使用されます。

ジオトレースおよびジオシェープの質問は、値の前に mapSettings: を付けるときに、Web マップのアイテム ID とマップ縮尺をオプションのパラメーターとして設定することをサポートします。以下の例では、1:100,000 のマップ縮尺が使用されます。

${polyline1|mapSettings:"10df2279f9684e4a9f6a7f08febac2a9":100000}

Web マップのアイテム ID を空の文字列のままにした場合、質問のデフォルト ベースマップが使用されます。マップ縮尺を 0 に設定すると、マップが質問のジオメトリにズームします。

ジオトレースおよびジオシェープの質問は、画像の質問に対してサイズの式もサポートしています。この式を使用して、次の例に示すように、レポートに表示されるマップの解像度を制御できます。

${polyline1|size:400:400}

mapSettingssize の式を一緒に使用すると、次の例に示すように、Web マップ ID とマップ縮尺、およびマップ画像の解像度を指定できます。

${polyline1|mapSettings:"10df2279f9684e4a9f6a7f08febac2a9":100000|size:400:400}

メモ:

マップのサイズを設定するとともに、他の式パラメーターを使用する場合、size を数式の最後に配置する必要があります。

マップの質問が調査に含まれていない場合、または関連する調査のないフィーチャ レイヤーのレポートを作成している場合でも、${$shape} プレースホルダーを使用して質問のジオメトリを返すことができます。

日付、時刻、日時

日付や日時の質問の場合、式を使用して、日、月、年にそれぞれ DD、MM、YYYY のプレースホルダーを使用して日付の書式を設定できます。次の式は、年を省略して、日と月のみを表示します。

${date|format:"DD/MM"}

日時の質問で時間の書式を設定することもできます。この場合、時間、分、秒にそれぞれ HH、mm、SS のプレースホルダーを使用します。次の式は、日、月、時間、分を表示します。

${datetime|format:"DD/MM HH:mm"}

デフォルトでは、フィーチャ レイヤーに格納されたすべての日付と時刻の値は、協定世界時 (UTC) で表示されます。utcOffset パラメーターを使用すると、フィーチャ レポート内のこれらの値の表示を変更して、特定のタイム ゾーンに合わせることができます。次の式は、日時の質問の回答を UTC から 1 時間オフセットして表示します。

${datetime|utcOffset:"+01:00"}

utcOffset パラメーターは、+01:00+0100+01 の形式をサポートし、同じ結果を返します。このパラメーターを使用して、回答の送信時間の表示を変更することもできます。utcOffset が時間の質問では機能しないということに注意してください。

複数の選択肢

単一の選択肢の質問が、プレースホルダーで参照される場合 (${select_one} など)、選択肢のラベルを返します。単一の選択肢の質問が式で使用される場合、または質問が外部ファイルからの選択を使用する場合、単一選択肢の質問は選択肢の値を返します。次の例では、ラベルではなく、選択肢の値を条件ステートメントに使用しています。

${if select_one=="choice1Value"}The user selected the first choice.${/}

ラベルではなく選択肢の値を意図的に表示するには、getValue 式を使用します。

${select_one|getValue:""}

単一の選択肢の質問と複数の選択肢の質問の場合、式を使用して、選択肢の横にチェックボックスを配置できます。これは、質問の回答に応じてオンになります。次の式は、質問に対して「yes」のオプションが選択されているときに表示されます。

${select_one|checked:"yes"} Yes

複数の選択肢の質問は、選択された選択肢の総数を出力するため、および選択された特定の選択肢を出力するための式をサポートします。

${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}

レポートの印刷対象を、回答に関連付けられたすべてのリピートではなく、指定したリピート数のみに制限したい場合は、resultRecordCount パラメーターを使用して印刷するリピート数を設定します。

${defects | resultRecordCount:20}

orderByFields パラメーターを使用して、リピートが印刷される順序を決定できます。フィールド名の後に ASC または DESC を付けて宣言すると、そのフィールドの入力に応じて、それぞれ昇順または降順でリピートが印刷されます。

${defects | orderByFields:"state_name ASC, pop2000 DESC"}

クエリ

集約関数を使用して、印刷された回答の値のクエリを生成できます。これらのクエリは、印刷される回答の数にかかわらず、フィーチャ レポートに 1 回だけ表示されるサマリー セクションに最適です。詳細については、「フィーチャ レポート クエリ」をご参照ください。

条件エレメント

フィーチャ レポートのエレメントは、if ステートメントを使用して、条件付きで表示または非表示にすることができます。開始の ${if expression} プレースホルダーに式を入力し、条件セグメントの終了を示す ${/} を入力することで、if ステートメントを使用できます。レポートの一部を非表示にするために使用できる if ステートメントの例を次に示します。

  • ${if photo1} では、photo1 の質問が回答された場合にだけ、このセクションが表示されます。
  • ${if integer1>0} では、integer1 の質問に対する回答が正の値であった場合にだけ、このセクションが表示されます。
  • ${if ((geopoint1 | getValue:"y")>0)} では、ジオポイントが北半球にある場合にだけ、このセクションが表示されます。
  • ${if multiple_choice1 | selected:"A"} は、複数の選択肢の質問で選択肢「A」が選択された場合にのみ、このセクションを表示します。

回答が質問に対する値を含んでいるかどうかをチェックするには、フィールド名を直接参照する if ステートメントのみを使用し、他の演算子を使用しないでください (例: ${if photo1})。この形式は、空の文字列、NULL 値、および未定義の値がすべて空の値と見なされることを保証します。この形式は、文字列、数値、日付、および添付ファイルのフィールド タイプに適用されます。この形式を繰り返しと共に使用した場合、少なくとも 1 つのインスタンスが繰り返しに存在する限り、このセクションが表示されます。

if ステートメントでは、次の論理演算子がサポートされています。

演算子説明

||

2 つのステートメントのいずれかが true を返す場合、true になります

&&

所定のステートメントの両方が true を返す場合、true になります

!

ステートメントが true でない場合、true になります

==

所定の 2 つの値が互いに等しい場合、true になります

!=

所定の 2 つの値が互いに等しくない場合、true になります

>

最初の値が 2 つ目の値より大きいかどうかを評価します

>=

最初の値が 2 つ目の値以上であるかどうかを評価します。

<

最初の値が 2 つ目の値より小さいかどうかを評価します。

<=

最初の値が 2 つ目の値以下であるかどうかを評価します。

制限事項

フィーチャ レポート テンプレートを使用する場合、次の制限事項が存在します。

  • マップが 2014 年 7 月にリリースされたバージョン 2.0 より前の Web マップ バージョンを使用している場合、フィーチャ レポート内にマップは表示されません。
  • ArcGIS Enterprise ポータルに有効な SSL 証明書がない場合、フィーチャ レポート内にマップは表示されません。
  • フィーチャ レポート テンプレートは、ArcGIS Enterprise 10.5 以降で Survey123 Web サイトを使用している場合のみサポートされます。
  • フィーチャ レポート テンプレートを使用した印刷は、一般向けではない ArcGIS Enterprise 配置では機能しません。これを試行すると、getaddrinfo ENOTFOUND エラーが発生します。
  • フィーチャ レポート テンプレートを使用した印刷は、統合 Windows 認証 (IWA) を使用する ArcGIS Enterprise 配置では機能しません。