6
3

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 3 years have passed since last update.

PoweApps DataCardを使って設定に応じた表示切替えを実現する

Last updated at Posted at 2021-09-26

前置き

職場で下図左のような勤務連絡アプリを作成しました。(勤務開始時間と勤務場所を選択してTeamsに投稿するシンプルなアプリ)
これを展開したところ別々の人から次のような要望が上がってきました。

  • Aさん:勤務終了予定時刻も選択できるようにしたい。
  • Bさん:勤務開始時に体温を連絡できるようにしたい。
  • Cさん:Teamsじゃなくてメールで連絡できるようにしたい。

下図右のようにすれば全員が望む機能を実現できますが、勤務開始時間と場所だけ連絡できれば良い自分にとっては不要なボタンが多くなって使いづらくなくなってしまいます。何より美しくありません。

そこで、使う人にとって必要な機能(コントロール)だけを表示できるようにしたいと思います。

image.png

表示切替の実現方法を考えてみる

1.全パターンの画面を用意して切り替える

もっとも単純な方法ですが、パターンの組み合わせの数(今回の場合は8)だけ画面を作成する必要があります。また画面内のコントロールの内容を変更する際には同じコントロールをコピペした他の画面のコントロールも変更する必要がありメンテナンス性に欠けます。
パターンは今後も増えていく可能性があるのでこの方法は却下します。
image.png

2.設定に応じて各コントロールのVisibleを切り替える

PowerAppsのコントロールにはVisibleというプロパティがあり、デフォルトではtrueになっていますが、これをfalseにすることで非表示にすることができます。

①まずトグルボタンを作成し、Toggle_Vitalという名前にします。
image.png

Toggle_VitalがONなら表示、OFFなら非表示としたいコントロールのVisibleプロパティを下記のように記述します。

Visible
If(Toggle_Vital.Value,true,false)

同様にもう1つトグルボタンを作成し、そのON/OFFに応じてVisibleを切り替えるようにすることで、下図のように設定に応じて必要なボタンだけを表示させることができるようになります。
image.png
一応これで出来たと言えなくもないですが、非表示にした部分が空白になっていて見た目的に少し不格好です。できれば空白部分は詰めて表示したいので、もうちょっと良い方法を考えてみます。

3.設定に応じてDataCardのVisibleを切り替える。

PowerAppsで、挿入⇒新しい画面⇒スクロール可能を選択して画面を作成すると、デフォルトでCanvasという部品が用意されており、その中にDataCardという部品が入っています。このDataCardは編集画面上のセクションの追加を押すことでいくつでも増やすことができます
image.png

DataCard内には下図の通り複数のコントロールを格納することができます。また他のコントロール同様、DataCardもVisibleプロパティがあり表示非表示を切り替えることができ、さらに以下の特徴があります。

  • Disableの場合、DataCard内に格納したコントロール全て一括で非表示になる
  • Disableの場合、高さが0になる

image.png

つまり設定によって表示非表示を切り替えたいコントロールをDataCard単位でまとめ、DataCardのVisibleプロパティを設定に応じて切り替えることで、非表示部分の空白のない表示切替えを実現できます。
image.png

各コントロールのVisibleを切り替えた場合と比較すると、非表示プロパティ部分の不自然な空白がなくなりすっきりしました。また設定に対応して表示/非表示を切り替える部品がDataCard単位でまとめられているのでメンテナンスしやすいというメリットもあります。

6
3
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
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?