【Power Apps】複雑な検索処理

  • 複雑な検索処理
    Power Appsでコレクションに対して複雑な検索処理を実施する方法は以下の通り。

    With(
        If(gblユーザー種別="一般ユーザー",
            // 一般ユーザーの場合
            {baseFiltered: Filter(colコレクション,
                Find(gbl操作者メールアドレス, 照会者メールドレス) > 0 &&
                表示フラグ = true &&
            },
            If(gblユーザー種別="一般管理者",
                // 一般管理者の場合
                {baseFiltered: Filter(colコレクション,
                    ステータス <> "一時保存中" &&
                    Find(gbl操作者メールアドレス, 閲覧者メールドレス) > 0 &&
                    表示フラグ = true &&
                },
                // 上級管理者の場合
                {baseFiltered: Filter(colコレクション,
                    Find(gbl操作者メールアドレス, 閲覧者メールドレス) > 0 &&
                }
        ),
        With(
            {baseFiltered2: 
                Switch(S01_rgo_検索条件切り替え.Selected.Value,
                    "検索条件なし", baseFiltered,
                    "タイトルで曖昧検索", Search(baseFiltered, S01_txt_タイトル.Text, タイトル),
                    "照会者名で曖昧検索", Search(baseFiltered, S01_txt_照会者名.Text, 照会者名),
                )
            },
            With(
                {baseFiltered3: SortByColumns(baseFiltered2, "ID", If(gbl表示順 = "降順", SortOrder.Ascending, SortOrder.Descending))
                },
                Filter(baseFiltered3, 
                    If(S01_drp_フィルターステータス.Selected.Value = "ステータス",
                        true,
                        IsBlank(S01_drp_フィルターステータス.Selected.Value) || ステータス = Text(S01_drp_フィルターステータス.Selected.Value)
                    ),
                    If(S01_drp_フィルター部署名.Selected.Value = "部署名",
                        true,
                        IsBlank(S01_drp_フィルター部署名.Selected.Value) || Left(照会者ユーザー情報.Department, Find("/", 照会者ユーザー情報.Department) -1) = Text(S01_drp_フィルター部署名.Selected.Value)
                    )
                )
            )
        )
    )
    

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です