Outdated documentation

The latest documentation was moved to docs.qfield.org

属性フォームの設定

QFieldはQGISと似たようなフォームを作成できますが、完全に同じではありません。

属性フォームの抑制

「属性フォームの抑制」設定は、QFieldフォームに直接適用されます。

フィールドウィジェット

QGISでのフィールドウィジェットはできる限りサポートできるように努めています。

ウィジェットタイプ サポートの可否 備考
テキスト編集
  • HTMLはサポートされていません。
  • 数値入力はデータ型に基づいて設定されます。
チェックボックス  
バリューマップ  
非表示  
アタッチメント このフィールドはカメラ機能と統合されています。pdfやdocなどの他のファイルを開くこともできます(利用者が適切なビューアを持っている場合) アタッチメント (写真の設定)
日付/時刻  
リレーションの参照  
リレーションウィジェット  
値のリレーション  
その他 支援

リレーションウィジェット

詳細については、オフィシャルサイト QGIS Documentation の該当ページを参照してください。

../_images/relation_editor_widget_list.png

リレーションウィジェットは全ての参照する子地物をリスト形式で表示します。それらを追加、削除したり、開いたりすることが可能です。

リストエントリの視覚的な識別は、子レイヤーの「表示式」を介して行われます。

キーの処理

親の主キーは、参照する子地物の外部キーとして使用されるため、これらの主キーは、オリジナルのデータに同期した後でも使用するために保持されなければいけません。 したがって、主キーにはUUIDなどの安定した値を使用することをお勧めします。

追加しようとしている親地物から既に存在している子地物を追加することは可能です。 親に有効な主キーがないか、制約に違反している場合、これはブロックされる可能性があります。 いくつかの子フィーチャがすでに追加された後で親地物の追加がキャンセルされた場合、子地物も削除されます。

多対多のリレーション

多対多の関係では、QGISのベクターレイヤープロパティでのカーディナリティーカラムに格納されているデータの種類がどのくらいあるかの設定に従って、追加、削除、もしくはリストのエントリを開いたりする際に子レイヤー(直接的なカーディナリティ)またはリンクされたテーブル(多対1のカーディナリティ)に直接的に影響します。

通常、2番目のケースは、リンクしているテーブルに追加の関係情報(パーセンテージなど)がある場合に使用されます。

../_images/relation_widget_cardinality.png

多対多のリレーションにおける多対1のカーディナリティのケースの場合、表示名の式をリンクしているテーブルに設定する必要があります。

アタッチメント (写真の設定)

ウィジェットタイプの「アタッチメント」はファイルパスを保存するフィールドとして使用されます。

次のようなことに利用できます:

  • 写真の閲覧や撮影
  • PDFや書類のような外部ファイルのリンクを表示
Attachement field settings

ファイルパスは相対パスにする必要があります。写真、PDFやドキュメントはテキストフィールド内に保存されているリンクが示すプロジェクトのサブフォルダに保存されていなければなりません。

QFieldで写真が表示されます。カメラのアイコンをクリックするとカメラが起動し新しく写真を撮影し更新できます。

Picture in QField

写真の入ったサブディレクトリの同期をする際には、pdfとdocsもコピーする必要があります。

アタッチメントウィジェットの「ハイパーリンク」オプションは、カメラ機能を無効にし、ハイパーリンクを有効にしてドキュメント(pdf、docなど)を開きます。

hyperlink_option

値のリレーション

ウィジェットの「値のリレーション」はコンボボックスで関連づけられたテーブルからの値を参照することを可能にします。レイヤ、キーカラム、値カラムを選択できます。標準の動作を変えるいくつかのオプション(NULL値を許容する、値で並べ替える、複数選択を許容する)があります。このウィジェットは参照する地物のドロップダウンリストか複数選択リストで表示されます。

value_relation_widget

ドラッグアンドドロップデザイナーフォーム

ドラッグアンドドロップデザイナーフォームでのグループとタブの設定はサポートされます。

条件付き表示

グループは式に基づいて非表示にすることができます。 これは、ある属性が特定の条件下でのみ必要な場合に役立ちます。 例として、木のマッピングを挙げてみましょう。いくつかの木は病気にかかっている可能性があり、あなたは想定される病気のリストを持っています。 入力フォームを多数のフィールドで分かりづらくさせないために、グループを作成し、グループ「病気」の表示設定をします。 チェックボックス付きのフィールド「病気」を追加します。 チェックボックスがチェックされている場合にのみ、病気のリストがユーザーに利用可能になります。

Conditional visibility configuration

チェックボックス「measures_taken」がチェックされている場合にのみ表示されるグループボックスの構成。

現場の様子を見てみましょう

制約

属性フィールドには制約を追加できます。制約はフォームを保存することができるように True (or 1) に評価する必要がある式です。制約はフィールドごとに構成され、制約が満たされない場合にユーザーに表示される説明を追加できます。

Constraint configuration

範囲内の制約の構成

一般的な使用例

この国で最も標高が高い山よりも大きな標高値を入力することはできません。

"elevation" < 5000

identifier は入力必須の項目です。

"identifier" IS NOT NULL

初期値

フィールドには初期値を設定できます。 新しい地物をデジタイズするときに、初期値が属性フォームに入力されます。 これらはユーザーに表示され、フィールドが編集可能な限り変更できます。 それらは、ジオメトリ変数または式変数に基づくことができます。

Default value configuration

初期値として書式設定された日付の構成

追加の変数

オブジェクトの属性の中で自分の位置に関連する情報を保存する点については、対応する :ref:`GNSS documentation<gnss_variables>`をご覧ください。

一般的な使用例

位置情報を変数として挿入します。

@position_horizontal_accuracy

現在の日付と時間を挿入します。

now()

デジタイズした線分の長さを挿入します。

length($geometry)

デバイス上のグローバル変数を構成し挿入します。

@operator_name

新しい地物が挿入される場所に基づいて地域コードを割り当てる場合は、集計式を使用して割り当てることができます。

aggregate( layer:='regions', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry( @parent ) ) )

@position_coordinate から受け取った座標をプロジェクトの座標系に変換します。

x(transform(@position_coordinate, 'EPSG:4326', @project_crs ))
y(transform(@position_coordinate, 'EPSG:4326', @project_crs ))

ラインを引いた後のスナッピングした結果を使いたい場合は、@snapping_results 変数を使います。次のコードでは、ラインの最初の点にスナッピングした属性 id の値を抽出しています。

with_variable(
  'first_snapped_point',
  array_first( @snapping_results ),
  attribute(
    get_feature_by_id(
      @first_snapped_point['layer'],
      @first_snapped_point['feature_id']
    ),
    'id'
  )

)

編集可否

フィールドの編集可能フラグが優先されます。

最後の値を記憶する

QFieldは、最後に使用した値をよりきめ細かく制御することでQGIS設定を無視します。

オートコンプリートの設定

「コンプリートを使用する」チェックボックスをチェックすることで値の関係によってオートコンプリートを使用できます。

../_images/autocomplet_form.png

:ref:`値の一覧から検索<search_value_list>`がどのようにQFieldで機能するかこちらのビデオでご覧いただけます。