PowerApps|ギャラリー内を検索できるようにしたい【シンプル仕様】

このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています
  • URLをコピーしました!

ギャラリー内を検索できるようにしたい

Plat(プラット)

ギャラリー内を検索できるようにします。
今回はかんたんに出来るようにシンプルな仕様を用意しました。

Aさん

「ギャラリーを検索・・・」で調べると色々な方法が出てきますね。
どの方法を選んだらよいのか判断できず悩んでいました。
まずは今回教えてもらう方法を使ってみます。

「検索」には色々な方法があります。かんたんなものから複雑なものまで幅広く仕様が用意されています。

数ある仕様の中から今回は「できるだけかんたんな仕様」で環境を用意する事にします。

理由は検索環境を用意することに慣れてもらう為です。まずは手を動かしてもらいたいという想いがあります。

  • ギャラリーを用意する
  • テキスト入力(テキストボックス)を用意する
  • ギャラリーのItemsプロパティに式を用意する

3ステップでギャラリー内を検索するための環境を用意していきます。(先に結論を見たいかたはこちら

関連記事

画像と動画をたくさん使ってギャラリーとはどんなコントロールなのかを説明しています。

PowerAppsとSharePointを接続する方法について説明しています。

ギャラリーの値を取り出してExcelに貼り付ける事も可能です。関数の組み合わせで式をつくります。

関連書籍

PowerAppsのおすすめ書籍です。

電子書籍はこちらです。

電子書籍はこちら
目次(リンク機能付き)

ギャラリーとは

ギャラリーの説明やギャラリーの作り方についてはこちらの記事で解説しています。

ギャラリーとは?
Plat(プラット)

ギャラリーがどんなものなのか分からないという方はご一読ください。

事例:ギャラリー内を検索するための環境を用意する

ここからは事例をもとにギャラリー内を検索するための環境を用意していきます。

まず本事例の着地点を明確にしておきましょう。以降説明を続けます。

ギャラリー内の品名を検索できるようにする

ギャラリーを用意する

まずはギャラリーを用意しましょう。詳しくはこちらの記事をご覧ください。

今回はリンク先の記事で用意したギャラリーと同じものを使って説明していきます。

ギャラリーの仕様を表示

このギャラリーのデータソースはSharePointのリスト「d-down」というListです。

番号列名データ型備考
1no1行テキスト番号
2name1行テキスト品名
3maker1行テキストメーカー
4unitprice数値単価
5stock数値在庫
6concatenation1行テキスト番号:品名
アプリ間のデータ接続方法

PowerApps、SharePoint間におけるデータ接続方法が分からない方はこちらをご覧ください。

テキスト入力(テキストボックス)を用意する

テキスト入力(テキストボックス)をギャラリーの近くに用意します。

今回はギャラリーの上部にセットしました。テキスト入力の名前は「TextInput1」です。

ギャラリーとテキスト入力の仕様を表示
テキスト入力の近くに「品名」というラベルを用意してあげるとより分かりやすくなります

ギャラリーのItemsプロパティに式を用意する

ギャラリーのItemsプロパティに以下式を記入します。これで作業は終了となります。

以降は関数の説明が入ります。関数の説明は不要で結論が見たいという方はこちらにお進みください。

Filter(‘d-down’, StartsWith(name, TextInput1.Text))

関数の説明が必要な方はこのまま読み進めて下さい。

Aさん

2つの関数は単体で考えればそれほど難しくないです。
関数の戻り値を組み合わせるところがポイントだと感じました。

Filter関数

文字通りですね。フィルターをかけるための関数です。

Filter関数

数式を満たすテーブルでのレコードを検索します。

構文

フィルター(表*, 式1 [, *式2*, … ] )

Microsoftドキュメント:Filter、Search、および LookUp 関数より抜粋、加工

今回使った式をもとにFilter関数がどんな機能をもっているのかについて考えてみます。

Filter(‘d-down’, StartsWith(name, TextInput1.Text))

Filter関数は表’d-down’が対象です。その後の式1に該当するのがStartsWith関数を使った式になります。

つまりStartsWith関数で得た結果に該当するレコードを返してくださいと読み取ることができます。

StartsWith関数

続いてStartsWith関数を深掘りしていきましょう。StartsWith関数は本記事内のキーになる関数です。

StartsWith関数

あるテキスト文字列が別のテキスト文字列で始まるかどうかをテストします。

構文

StartsWith( TextStartText )

Microsoftドキュメント:EndsWith 関数と StartsWith 関数より抜粋、加工

簡単に説明するとパラメータのTextがStartTextで指示した文字で始まるかどうかを確認しています。

以下のような状態であればTrueを返すというのがStartsWith関数です。

  • Text:マウス
  • StartText:マ(ま)

2つの関数を組み合わせて考えてみる

2つの関数について勉強しました。この知識をもとに今回使った式を再度確認してみましょう。

個々の関数の仕組みが理解できていれば読み解くことができるはずです。

Filter(‘d-down’, StartsWith(name, TextInput1.Text))

TextInput1に書かれた文字で始まるname列の値を持っているレコードを返す」という式です

完成

これで完成です。name列だけの検索ですが検索可能な環境をつくることができました。

出来栄えは動画をご覧ください。(音声無しで約30秒です)

Aさん

1文字入力しただけで検索が進んでいく仕様ですね。
簡単なのにしっかりした検索機能を用意することができました。

Plat(プラット)

今回はタイパ重視の仕様です。他にもいろいろな仕様があります。
検索環境の構築は少々難しいので徐々に勉強を進めていって下さい。

テキスト入力が空欄の時に対象のギャラリーのレコードが全部表示されるのはなぜ?

これはStartsWith関数の仕様です。実際に確認してみることにしましょう。

PowerAppsでテキストラベルを3つ用意し各テキストのTextプロパティに以下式を1つずつ記入してください。

  • StartsWith(“Apple”, “”)
  • StartsWith(“Banana”, “”)
  • StartsWith(“Orange”, “”)

全てTrueが返ってきますよね。StartsWith関数はパラメータのStartTextが空欄の時はTrueを返してしまいます。

よって「パラメータのStartTexが空欄だと対象のギャラリーのレコードが全部表示されてしまう」様です。

今回私が紹介した仕様はこの状態を逆手にとった使い方をしています。

まとめ

本記事ではギャラリー内を検索して情報を絞り込むという作業を見ていただきました。

少ない手数とかんたんな作業で環境を用意することができましたね。

2人の会話に戻りましょう。Aさんは早速次にやりたいことがあるみたいですよ。

Aさん

次はギャラリーの値を取り出したいです。
Excelに貼り付けが出来ると後工程の効率が上がります。

Plat(プラット)

データ出力が用意されていると利便性向上につながります。
次の記事で勉強することにしましょう。

次の記事ではギャラリーから値を取り出してExcelに貼り付けるという作業について勉強することにします。

ギャラリーの値を取り出してExcelに貼り付ける
よかったらシェアしてください!
  • URLをコピーしました!