キャンバス アプリの人物画面テンプレートに関する参照情報

Power Apps でのキャンバス アプリの場合、人物画面テンプレートの重要な各コントロールがスクリーン全体の既定機能にどのように貢献するかを理解します。 この詳細は、動作の数式およびコントロールがユーザー入力にどのように応答するかを決定する、他のプロパティの値を表示します。 このスクリーン既定機能の概要については、人物画面の概要 を参照してください。

このトピックは、一部の重要なコントロールに注目し、それらのコントロールのさまざまなプロパティ (Items および OnSelect など) に設定する式または数式ついて説明しています。

前提条件

Power Apps でアプリを作成する ときに、画面およびその他のコントロールの追加および構成を行う方法に関する知識。

TextSearchBox コントロール。

他の 2 つのコントロールは対するか、またはテキスト検索ボックス上で依存関係があります。

  • ユーザーがテキストの入力を開始すると、UserBrowseGallery が表示されます。
  • ユーザーが UserBrowseGallery 内のユーザーを選択すると、検索内容はリセットされます。

UserBrowseGallery コントロール。

  • プロパティ: アイテム
    値: ユーザーが入力を開始したときにユーザーを検索するロジック。

    If( !IsBlank( Trim( TextSearchBox.Text ) ), 
        'Office365Users'.SearchUser(
            {
                searchTerm: Trim( TextSearchBox.Text ), 
                top: 15
            }
        )
    )
    

このギャラリーのアイテムは、Office365.SearchUser 操作からの検索結果により設定されます。 操作は、検索語句として Trim(TextSearchBox) のテキストを受け取り、その検索に基づいて上位 15 件の結果を戻します。 TextSearchBox は、スペースでのユーザー検索が無効であるため、Trim() 関数に囲われています。

検索ボックスにユーザーが入力したテキストが含まれている場合に操作を呼び出す必要があるだけなので、Office365Users.SearchUser の操作は、If(!IsBlank(Trim(TextSearchBox.Text)) ... ) 関数でラップされています。 これにより、パフォーマンスが向上します。

UserBrowseGallery Title コントロール

UserBrowseGallery Title コントロール。

  • プロパティ: テキスト
    値: ThisItem.DisplayName

    ユーザーの表示名を Office 365 プロフィールから表示します。

  • プロパティ: OnSelect
    値: ユーザーをアプリ レベルのコレクションに追加し、ユーザーを選択するコード。

    Concurrent(
        Set( _selectedUser, ThisItem ),
        Reset( TextSearchBox ),
        If( Not( ThisItem.UserPrincipalName in MyPeople.UserPrincipalName ), 
            Collect( MyPeople, ThisItem )
        )
    )
    

このコントロールの選択により、3 つのことが同時に実行されます。

  • _selectedUser 変数を、選択した項目に設定します。
  • TextSearchBox の検索語句をリセットします。
  • 選択したアイテムを MyPeople コレクションに追加する、アプリ ユーザーが選択したすべてのユーザーのコレクション。

UserBrowseGallery ProfileImage コントロール

UserBrowseGallery ProfileImage コントロール。

  • プロパティ: Image
    値: ユーザーのプロファイル写真を取得するロジック。

    If( !IsBlank( ThisItem.Id ) && 
            'Office365Users'.UserPhotoMetadata( ThisItem.Id ).HasPhoto,
        'Office365Users'.UserPhoto( ThisItem.Id )
    )
    

画像 コントロールは、Office365Users.UserPhoto 操作を使用してユーザーの画像を取得します。 ただし、その前に 2 つのことを確認します。

  • ID フィールドが空かそうでないか。 これにより、ギャラリーが検索結果によって設定される前に、画像 コントロールがユーザーの写真を取得しようとすることを回避します。
  • ユーザーに写真があるかどうか (Office365Users.UserPhotoMetadata 操作により)。 これにより、ユーザーにプロフィールの画像がない場合に、Office365Users.UserPhoto 検索が例外を返すことを回避します。

画像が取得されない場合、画像 コントロールは空白で、代わりに iconUser コントロールが表示されることに注意してください。

PeopleAddedGallery コントロール。

  • プロパティ: アイテム
    値: MyPeople

これは、UserBrowseGallery タイトル コントロールを選択して、初期化または追加されたユーザーのコレクションです。

PeopleAddedGallery Title コントロール

PeopleAddedGallery Title コントロール。

  • プロパティ: OnSelect
    値: Set( _selectedUser, ThisItem )

_selectedUser 変数を、EmailPeopleGallery で選択した項目に設定します。

PeopleAddedGallery iconRemove コントロール

PeopleAddedGallery iconRemove コントロール。

  • プロパティ: OnSelect
    値: Remove( MyPeople, LookUp( MyPeople, UserPrincipalName = ThisItem.UserPrincipalName ) )

MyPeople コレクションのレコードを検索します。ここで、UserPrincipalName は選択したアイテムの UserPrincipalName と一致し、その後、そのレコードをコレクションから削除します。

次の手順

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。