PowerApps Office 365のユーザを検索してリストボックスへ表示させる

目次

PowerApps Office 365のユーザを検索してリストボックスへ表示させる」

データソースを追加する

  1. ビュー → 【データソース】をクリックします
  2. 【データソースの追加】をクリックします
  3. 検索窓にOfficeと入力し、Office 365ユーザをクリックします。
  4. データソースとしてOffice 365ユーザが追加されたことを確認します

ユーザ検索用のテキストボックスを作成する

  1. [挿入] → [テキスト] → 【テキスト入力】をクリックします
  2. テキストボックスの名前を「txtSearchBox」に変更しておきます

検索結果表示用のギャラリーを作成する

  1. [挿入] → [ギャラリー] → 【縦】をクリックします
  2. 追加されたギャラリーを選択し、Itemsに以下のように入力します
    Office365ユーザー.SearchUser({searchTerm:txtSearchBox.Text,top:15})

画像にプロフィールアイコンを表示させよう

  1. ギャラリーからImage1を選択します
  2. Image計算式に以下のように入力します
    Office365ユーザー.UserPhotoV2(ThisItem.UserPrincipalName)
  3. プロフィール画像が設定されているユーザのプロフィール画像が表示されます

表示名を表示させよう

  1. ギャラリーからTitle1を選択します
  2. Text計算式に以下のように入力します
    ThisItem.DisplayName
    テキストボックスに表示名が表示されたことを確認します
  3. 同様にUserPrincipalNameを表示させていきます
    ギャラリーからSubtitle1を選択します
  4. Text計算式に以下のように入力します
    ThisItem.UserPrincipalName
    UserPrincipalNameが表示されたことを確認します

選択したユーザ名をテキストボックスに表示させよう

  1. [挿入]→[テキスト]→【テキスト入力】をクリックします
  2. 追加したテキストボックスを選択し、Default計算式に下記のように入力します
    Gallery1.Selected.UserPrincipalName
  3. F5キーを押して実行します。
  4. 検索ボックスからユーザを検索し表示されたユーザをクリックすると選択したユーザのUserPrincipalNameがテキストボックスに表示されます

 

一度だけこのユーザの情報を利用するのであればこれで問題ないかもしれませんが、何かの書類用に複数人選択させて利用したい等がある場合にはこれでは適さないと思います。
ので、グループウェアによくある複数人選択を作成してみたいと思います。
こういうやつ↓(サイボウズさんのヘルプから拝借)

ユーザを追加するリストボックスを作成しよう

  1. 参加者欄に該当するリストボックスを挿入します
  2. [挿入]→[コントロール]→【リストボックス】をクリックします
  3. 次に[挿入]→【ボタン】をクリックします
  4. ボタンを2つ追加し、表示テキストを「ユーザ追加」と「クリア」に変更します
    こんな感じになりますね
  5. Appを選択します
  6. OnStart計算式に以下のように入力します
    Collect(userlist,Office365ユーザー.MyProfileV2())
  7. ユーザ追加としたほうのボタンを選択します
  8. OnSelectの計算式に以下のように入力します
    If(Not(Gallery1.Selected.UserPrincipalName in userlist.UserPrincipalName), Collect(userlist, Gallery1.Selected))
  9. F5キーを押してユーザを検索し追加したいユーザの上でクリックした後に、【ユーザ追加】ボタンをクリックします
  10. 以下のようにリストボックスにユーザのUserPrincipalNameが表示されます

ユーザを削除できるようにしよう

twitterで教えていただきました。ありがとうございます!

  1. [挿入]→【ボタン】をクリックしボタンを追加します
    ボタンの表示名を「クリア」に変更します
  2. OnSelect計算式に以下のように入力します
    ClearCollect(userlist,Ungroup(userlist,”UserPrincipalName”));
    RemoveIf(userlist,UserPrincipalName in ListBox2.SelectedItemsText.UserPrincipalName)
  3. 複数名をリストボックスに追加します
  4. リストボックスに表示されたユーザを選択し、作成したクリアボタンをクリックします
  5. リストボックスから選択したユーザが削除されたことを確認します

全クリアをできるようにしよう

ボタン1つで選択した全ユーザをクリアできるようにします

  1. 上記と同じ手順でボタンを追加し、表示を「全クリア」としておきます
  2. ボタンを選択し、OnSelect計算式に以下のように入力します
    Clear(userlist)
  3. ユーザ数人追加した状態で全クリアボタンを押しリストボックス内のデータがすべてクリアされたことを確認します

 

承認経路とかいろいろなことに利用できそうですね!

 

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次