Power Apps Dataverse for Teamsで遊んでみた! とりあえず交通費申請アプリとか作ってみる(3/3)

Dataverse for Teamsということで、Teams内のPower AppsであればDataverse(旧:CDS)が無料で使えるようになったらしい!

ということで、交通費申請アプリとか作って遊んでみた!

今回は最終回で、前回のアプリで残っていた問題

  • 自分以外の交通費申請も見れちゃう
  • 「件名」プロパティは自動で適当に入るようにしたい
  • 「管理番号」って見せる必要なくない?
  • 「だれが」列にログインユーザーを勝手に入れてほしい

を直してみる。

スポンサーリンク

自分以外の交通費申請も見れちゃう

今の状態だと自分(User Test)が出した申請も
他の人が出した申請(わんさん)も見れちゃう。
そこで自分だけが見れるようにするために、左側のギャラリーのItemsにフィルターをかけてあげる。

「交通費申請」テーブルの「だれが」列は「ユーザー」テーブルの値が入っているので、「だれが.メールアドレス = ログイン中のユーザーのメールアドレス」のレコードだけになるようフィルターする。
ちなみに、変数「userMail」は、前回の記事でAppのOnStartで宣言した変数。一旦変数に入れることでDataverseへフィルター処理を委託できる。
するとさっきまであった自分以外の交通費申請が見えなくなった!
※ついでに「ユーザー」というラベルも「交通費申請」に変えとく。

使用していない「件名」プロパティは自動で適当に入るようにしたい

今回「件名」プロパティは基本「交通費」っていう値だけになると思うので、自動的に入るようにしてあげる。

まずは件名_DataCardのデフォルトを「交通費」にしてあげて、
同じく件名_DataCardのDisplayModeプロパティを「Parent.DisplayMode」から「DisplayMode.View」に変えてあげる。

ちょっと乱暴だけど、これでフォームコントロールが「新規作成」のときも「編集」のときも、テキストボックスがいじれなくなるので、常に「交通費」になる。

↓新規作成のときもいじれない。

※もちろんきちんとDataCardの中身をラベルに変えてあげたり、DataCardのVisibleをfalseにしちゃってもOK

「管理番号」って見せる必要なくない?

これは、単純に管理番号_DataCardを消せばOK!

「だれが」もログインユーザーを勝手に入れてほしい

申請を新規作成するとき、「だれが」列にログイン中のユーザーを勝手に入れたいということで、「だれが」コンボボックスのDefaultSelectedItemsプロパティにこんな式を追加。
すると、新規作成時に「だれが」列に勝手にユーザーが入るようになる!

最後に、色々いじってみて今回気になったことを一つだけ

「ユーザー」テーブルじゃなくて、デフォルトの「SystemUser」テーブルを使いたかったけど

普通の(Teams for)じゃない方のDataverseだと、「SystemUser」テーブルがデフォルトで用意されていてメールアドレスやら色んな情報が入っている。

Dataverse for Teamsの方にもあるっちゃあるんだけど、

氏名しか入ってないんで、いまいち使えなそう。。。
ちなみにこのデフォルトの「ユーザー」テーブルはビルドタブにも出てくるんだけど、
クリックすると変なことになるw

仕様か?w

コメント

タイトルとURLをコピーしました