0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ギャラリーコントロールの並び順をランダムにするItemsプロパティ

Last updated at Posted at 2025-04-18

ギャラリーコントロールのItemをランダム表示する方法に関しての共有です。

私は非ITエンジニアの市民開発者なので、おそらく難しい言葉を使ってないと(自分では)思っているので気軽に読んで頂ければと思います。

その上でどなたかのお役に立てば幸いです。

1. 環境

手元に下記のようなShareppoint List, PowerApps(キャンバス)がある状況とします。
で、画面左側のギャラリーコントロールの並び順をランダムにしたいとします。

Sharepoint List (データソース名 "DummyDB")
image.png

PowerApps (上記SharepointListを元に生成したものに少し手を加えたもの)
機能:左側カラム上部の「検索」にワード入れると人がソートされ、選択されたアイテムの詳細が画面の右側に表示されるApps。人材管理や資産管理などに使える想定。
image.png
...この機能で利用するのは黄色でハイライトしたボタンコントロールとギャラリーコントロールのみです。

2. 実例

このサンプルの場合ではそれぞれのコントロールで下記の設定がなされてます。
これで"Random"のボタン押すとギャラリーコントロールの表示順がランダムになります。
以降の段落で詳細の解説します。

ボタンコントロールの設定
image.png
※"Shuffled"はコレクション名、"DummyDB"はSharepoint List名

ギャラリーコントロールの設定
image.png
※"SearchInput"は検索ボックスに使ってるテキスト入力コントロール名
※"Title", "emailAddress"はSharepoint Listのカラム名

ランダム表示したギャラリーコントロール
image.png

3. 解説 - ボタンコントロールのOnSelectプロパティ

少し一般化して書くと下記のように設定するとOKです。

OnSelect = ClearCollect('コレクション名', Shuffle('データソースのSharepoint List名'))
  • ClaerCollect関数:
    • 機能:指定したコレクションのデータを削除し新規データをコレクションに追加する
      • コレクション:テーブル型の値を格納する変数(ClearCollect関数で生成されます)
        • 実例中では"Shuffled"がコレクションです
    • 基本構文:下記
ClearCollect('空にして更新するコレクション', 'コレクションに入れるデータ(Sharepoint List)')
  • Shuffle関数:
    • 機能: テーブル型のデータの並び順をランダムにシャッフルする
    • 基本構文:下記
Shuffle('データソースのSharepoint List名')

4. 解説 - ギャラリーコントロールのItemsプロパティ

こちらも少し一般化して書くと下記のように設定するとOKです。
簡単にまとめるとコレクションが空ならSharepoint Listのままで表示、そうでなければコレクションを表示ということをしています。

Items = If(IsEmpty('コレクション名'), Search('データソースのSharepoint List', '検索用テキスト入力コントロール名'.Text, 検索対象カラム1, 検索対象カラム2), Search('コレクション名', '検索用テキスト入力コントロール'.Text, 検索対象カラム1, 検索対象カラム1))
  • IsEmpty関数 (≠ IsBlank関数)
    • 機能:コレクションが空かを判断する。空ならTrue、そうでなければFalse。
    • 補足:IsBlankは"値"に対する判断、IsEmptyは"テーブル"に対する判断で別物です。
    • 基本構文:下記
IsEmpty('データソースのSharepoint List名')
  • Search関数
    • 機能:データソースをフィルタする
    • 基本構文:下記
Search('データソースのSharepoint List','検索ボックスのTextプロパティ','検索対象カラム1','検索対象カラム2'...) 

5.おわりに

こんな感じでした。どなたかのお役に立てば幸いです。
ちなみにランダム表示した後にアルファベット順に戻す場合にはSortByColumns関数を組み合わせればできます。余裕があれば別途記事を作るかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?