4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

モデル駆動型アプリでリレーションシップを使いこなす

Last updated at Posted at 2022-11-08

モデル駆動型アプリはデータ管理が得意なアプリで、本格的なテーブル設計を生かしたアプリを作ることができます。リレーションを活用する方法が様々ありますので、ご紹介したいと思います。

ビューでの使い方

関連テーブルの列をビューへ表示させる

ビューの編集画面のテーブル列にはそのテーブルの列が表示されますが、「関連」タブをクリックすると、関連テーブルの一覧が表示されます。ここで、ワンクリックで関連テーブルの列を表示させることができます。

  • ビューの編集画面
    image.png

  • 実際の画面image.png

フィルタリング機能

アプリでのビューの操作にも便利な機能があります。
[Edit Filter](フィルターを編集する)をクリックすると、フィルターの編集画面がでてきます。
image.png
ここで「+ Add」(追加)ボタンを押すと「Add related entity」(関連エンティティの追加)というメニューが出てきます。これが関連テーブルのデータを使ってフィルタリングをかけることができる機能です。

「Choose a related entity」(関連エンティティを選択)をクリックするとこのビューに表示されるテーブルとリレーションを持つテーブルが表示されます。

今回は「製品情報」列と連携されてる「製品」テーブルを使ってフィルタリングします。
次にこの列に値が入っているかどうかでフィルタリングすることができます。
「Contains data」(値が設定済み)か「Does not contain data」(値が未設定)を選びます。
image.png
「Does not contain data」(値が未設定)を選択すると、検索列で値が設定されてないレコードが表示されます。
image.png

「Contains data」(値が設定済み)を選ぶと、親テーブルの列を選択することができるようになります。
image.png
ここで例えば、製品テーブルの「原価」列が「10000」「より大きい」というフィルタリングをかけるかけることができます。

image.png

フォームでの使い方

親レコード詳細画面への遷移

実は多対一リレーションがある列のデータは、フォーム上でワンクリックでそのデータを見に行くことができます。
例えば、販売注文テーブル(子テーブル)のフォームにおいて、製品情報列が製品テーブル(親テーブル)とリレーションを持っていたらここのデータがタグのようになっています。
image.png

クリックすると、製品テーブルのキーが「AT03」のレコード詳細画面が表示されます。
image.png

関連タブ

関連テーブルのビューが、フォームの関連タブにデフォルトで入っています。
対象のテーブル項目をクリックすると、関連テーブルのAssosiated View(関連ビュー)が表示されます。その為、モデル駆動型アプリに関連テーブルのビューを追加して、必要に応じてカスタマイズするだけでデータの確認が簡単にできます。
image.png

image.png

サブグリッド

1対多(1:N)のリレーションのテーブルをフォームに表示することができます。つまり親テーブルのフォームで子テーブルのビューを表示させることができます。
これが見れることで、このテーブルが呼び出された先を確認することができます。

例)製品テーブルのタブレットが販売注文テーブルにて、2回注文IDがSO-1000、SO-1002のレコードで呼び出されていることがわかります。
image.png

簡易表示フォーム(Quick View Form)

関連テーブル(親テーブル)のフォームを、データを関連付けながらフォーム内に表示することができます。
親テーブル側のフォームは簡易表示フォームと呼ばれるものです。これが子テーブルのフォームで見れることによって、どんなデータと関連付けたのかすぐに確認することができ、非常に便利です。

例)注文販売テーブルの「製品」列に関連づく製品テーブルの1行分が表示されます。image.png

メインフォームに簡易表示フォームを追加する方法

簡易表示フォーム(編集版)

関連テーブル(親テーブル)のフォームを、データを関連付けながらフォーム内に表示するだけでなく、その場で親レコードを編集することができます。つまり、簡易表示フォームの編集ができるバージョンです。
image.png

親レコードの編集可能フォームをメインフォームに追加する方法

まとめ

モデル駆動型アプリでのリレーションシップの使い方についてまとめました。
半自動的にリレーションに対応したアプリを作ることができるので、使い方を知っておくだけで非常に便利です。
リッチな設計のテーブルの活用が、モデル駆動型ならではの良さです!ぜひいろいろ試してみてください。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?