酒井
開発の酒井です
大塚
同じく開発の大塚です
酒井
今回は、『ドメイン定義されている値を画面ごとに出力する方法』について
一緒に学んでいきましょう!
大塚
よろしくお願いします!
どういうときに使える?
大塚
そもそも、ドメインの項目制御ってどんな時に使うんですか?
酒井
たとえば、以下のように小学校から高等学校までの学年ごとに
選んだ教科の学習コースを申し込めるようなシステムがあるとします。
大塚
初めに学年を選択してから教科などの詳細を入力できる申請画面に遷移する構成ですね。
酒井
右側の画面は高等学校を選択した後の各項目選択画面なのですが、
ユーザーとしてこの画面を使用するときに何か気になることはありませんか?
大塚
高等学校を選択したのでいろいろな教科が選択できるのはわかるんですけど、プルダウンに「算数」はいらない気がします。
酒井
そうですね。
必要のない教科はできるだけ見えないようにして、使いやすい画面にしたいです。
酒井
では次に、開発者の視点で考えてみてください。
プルダウンの中身はどうやって作成しましょうか?
大塚
学年ごとに違う画面を用意して直接選択肢を書いたり、それか専用のドメインを都度作成したり、とか……。
酒井
もちろんその方法でも作成はできるのですが、
保守性を考えると「教科」というドメインひとつにしたほうがよりよさそうです。
大塚
たしかに……!
酒井
このように『同じドメインを使いたいけど、表示/非表示の設定は分けたい』
というときに今回説明する方法が使えます。
大塚
なるほど、こういうときに使うんですね!
このまま実装方法も教えてください!
実装方法
酒井
では実際にやってみましょう。
まず「教科」ドメインを定義します。
大塚
すべての教科が含まれているドメインを定義しました!
このままだと必要のない教科が見えてしまうので使いづらい画面になってしまうんですよね。
酒井
そうなんです。
なので、用意したウェブパネルのEventsに表示/非表示の条件を書いていきます。
大塚
今は小学校、中学校、高等学校それぞれ
タイトル部分だけ表示が変わるようにcase文を書いています。
酒井
各caseの中に、非表示にしたい教科に対して吹き出しのように追加していきましょう。
大塚
できました!
これで「算数」が表示されなくなるんですね。
酒井
ビルドして実際に画面を確認してみると……。
大塚
想定通り表示されていないです!
まとめ
大塚
今回はドメインの値を制限する方法をご紹介しました!
酒井
今回ご紹介した方法はあくまで一例ですので、もっと複雑なデータを扱いたい場合は、
マスタトランザクションを使ってみるのもいいですよ。
大塚
これからも皆さんに役立つ情報をお届けできるよう頑張りますので、よろしくお願いします!