【Power Apps 関数辞典】Search関数:検索機能の開発
Вставка
- Опубліковано 7 сер 2024
- 0:00 イントロ
0:54 Collect関数 (ClearCollect)
5:00 文字列の結合
6:02 Search関数
8:11 Search関数のパフォーマンス改善の工夫(検索ボタンの設置)
11:06 検索履歴を保持する
Microsoft Power Platform の Power Apps による検索機能の開発をデモを交えて開発します。
実は、アプリ作成の過程でSearch関数(検索機能)以外にもいろいろな関数やTipsを説明しております。
■ギークフジワラ ブログトップ
www.geekfujiwara.com/
■Twitter
/ geekfujiwara - Наука та технологія
いつも参考にさせていただいて
おります。
質問なのですが、
Searchの書式は
Search(ソース,テキスト,列)
なのは理解しています。
OnSelectで定義した変数の値や
Rightなどで抽出した文字を
テキストの部分に入れることは
可能でしょうか??
もし可能であれば教えていただき
たいです!
できます!
変数を宣言して、その変数をテキストのところに入れてみてください。
@@geekfujiwara
長文になります。ご容赦ください。
AppのOnStartで
ClearCollect(shainShift,
{ID:○○,workingTime:○○,
workingDay:○○}
と宣言しています。
IDは名前、workingTimeは勤務時間、
workingDayは出勤日を表しています。
カレンダーのテンプレを使用し、
日付がタップされると画面遷移し、
その日の出勤者がわかるように
しようと思っています。
社員の出勤日は曜日で決まっています。
ですので、ページ上部に
Text(dateSelected,LongDate)を
(ラベル名はtodayHeader1とします)
表示し、Rightで3文字取ってくることで
曜日の判定をしたいと考えました。
(例:水曜日)
そしてgalleryのOnSelectに
Set(weekOfDay,Right(todayHeader1,3))
;
Search(shainShift,weekOfDay,
''workingDay'')
としました。
しかし、weekOfDayの値は
水曜日ですが、workingDayに
水曜日がない人も表示されてしまいます。
どうしたら改善しますでしょうか??
長文をお読みいただきありがとう
ございます。時間のあるタイミングで
構いませんので、ご回答いただけると
大変助かります。
3つ修正してみてください。私の環境ではうまくいきました。
1つ目:
App.OnStartですが、shainShift に関して、曜日を列に含めてください。曜日はRight で取るのではなく、Text(日付, "ddd")で取得することができます。
※一旦、日付はToday、明日、明後日・・・という式にしていますが用途によって変更なさってください。ポイントはコレクションにWeekday という曜日を格納する列を追加することです。曜日は"月曜日"のような形式で列に含まれるようになります。
ClearCollect(shainShift,
{ID:1, WorkingTime:8, WorkingDay:Today(), Weekday:Text(Today(), "ddd"),Name:"田中" },
{ID:2, WorkingTime:8, WorkingDay:DateAdd(Today(),1),Weekday:Text(DateAdd(Today(),1), "ddd"),Name:"鈴木" },
{ID:3, WorkingTime:8, WorkingDay:DateAdd(Today(),2),Weekday:Text(DateAdd(Today(),2), "ddd"),Name:"佐藤" }
)
2つ目:
カレンダーテンプレート中のカレンダー形式のギャラリーである、MonthDayGallery1配下にあるTitle2ラベルのOnSelect に選択した曜日を格納する変数を宣言してください。
(すでに変数が宣言されていると思いますが、その下に追加します。)
Set(_WeekOfDaySelected, Text(DateAdd(_firstDayInView, ThisItem.Value, TimeUnit.Days), "ddd"))
これによって、選択した曜日がテキスト形式で変数に格納されます。
_WeekOfDaySelected の中には例えば "月曜日" のように保管されます。
3つ目:
社員のシフトを表示しているギャラリーのItems プロパティを以下のように変更します。
Filter(shainShift, _WeekOfDaySelected = Weekday)
これによって、1つ目, 2つ目にて作成してきた曜日(WeekdayというshainShitの列、カレンダー選択時の曜日である_WeekOfDaySelected)がそれぞれ一致した場合のシフトがフィルター表示されます。
はじめまして!
powerappsで検索アプリを作りたいのですが、
元のデータベースはシェアポイントリストで考えています。可能でしょうか?
全く問題ないですよ。ただ、Search 関数はSharePoint をデータソースとした時では現在委任ができない関数ですので、Filter 関数をStartWith 等で組み合わせながら作成してみてください。
現時点で委任できる関数は以下に載っております。docs.microsoft.com/ja-jp/connectors/sharepointonline/#power-apps-delegable-functions-and-operations-for-sharepoint
私のブログでもFilter 操作を紹介しておりますのでご参考ください。geekfujiwara.com/tech/1385/
すみません、教えていただきたいのですが、今回のようなキーワード検索+ボタンをいくつか作成して、ボタンを選択するとカテゴリー別に表示されるようにしたいのですが、可能でしょうか?
キーワードでも、ボタンでもギャラリーを表示させるイメージです。
可能です。条件の数にだけFilter関数で囲うようにしてあげてください。
@@geekfujiwara ありがとうございます。Search関数をフィルターで囲うということでしょうか…。
もし、すでにあげられている参考の動画ありましたらおしえていただけますと幸いです💦
SharePoint にはSearch 関数は委任できませんので(委任の警告が出て確かなデータが取れないことがある)、似たような関数としてFilter関数を使うことになってしまいます。
複数のFilterを重ねてはないですが、Filter関数の使い方はこちらで説明しておりますのでご参考ください。 geekfujiwara.com/tech/1385/