Power Apps Formの参照データソースを動的に切り替える
Formなどで参照するデータソースを動的に切り替えたい場合、以下の2つの方法が考えられます。需要としては開発、テスト用データソースに切り替えたいとかですかね。
どちらも一長一短、一癖ある感じです。
変数方式
変数にデータソースの参照を代入して置き、Form.DataSourceでは変数を参照する方法です。
Screen.OnVisibleやButton.OnSelectで別のデータソースを代入することでデータソースを切り替えることができます。
UpdateContext({FormDataSource:データソース1});
メリット
日本語でフィールドの指定ができるので、デフォルトの指定方法と変わらないのが楽。
デメリット
SharePointリストの添付ファイルに対応できない。
If() Switch() 分岐方式
Form.DataSource プロパティにIf()分岐などを設置して、条件によりデータソースを切り替える方法です。
If(true,データソース1,データソース2)
メリット
SharePointリストの添付ファイルに対応できる。
デメリット
日本語のフィールドがシステム生成の読めないフィールド名になってしまう。
対応表
|
直指定方式 |
変数方式 |
If() 分岐方式 |
フィールドを日本語で指定 |
〇 |
〇 |
|
フィールドを英語(システム生成)で指定 |
〇 |
〇 |
〇 |
添付ファイル対応 |
〇 |
|
〇 |
※検証中いじってたら変数方式で日本語指定ができなくなったりしたので、アプリ手順によってはできないことがあるかも。ブラウザリロードしたら直りました。
まとめ
最初If()で分岐できないのかと思ったりしたので、ちょっと罠ですね。
場合によりどちらも取りうる選択肢になると思います。アプリ要件を満たすものでお好きな方法で分岐させてみてください。
フィールド名は基本英語で作っておくのが吉ですね。