【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
  • Наука та технологія

КОМЕНТАРІ • 13

  • @user-ww2pu7jx6v
    @user-ww2pu7jx6v Рік тому

    いつも参考にさせていただいて
    おります。
    質問なのですが、
    Searchの書式は
    Search(ソース,テキスト,列)
    なのは理解しています。
    OnSelectで定義した変数の値や
    Rightなどで抽出した文字を
    テキストの部分に入れることは
    可能でしょうか??
    もし可能であれば教えていただき
    たいです!

    • @geekfujiwara
      @geekfujiwara  Рік тому

      できます!
      変数を宣言して、その変数をテキストのところに入れてみてください。

    • @user-ww2pu7jx6v
      @user-ww2pu7jx6v Рік тому

      @@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に
      水曜日がない人も表示されてしまいます。
      どうしたら改善しますでしょうか??
      長文をお読みいただきありがとう
      ございます。時間のあるタイミングで
      構いませんので、ご回答いただけると
      大変助かります。

    • @geekfujiwara
      @geekfujiwara  Рік тому

      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)がそれぞれ一致した場合のシフトがフィルター表示されます。

  • @user-cm5jq8vw3y
    @user-cm5jq8vw3y 2 роки тому +1

    はじめまして!
    powerappsで検索アプリを作りたいのですが、
    元のデータベースはシェアポイントリストで考えています。可能でしょうか?

    • @geekfujiwara
      @geekfujiwara  2 роки тому +3

      全く問題ないですよ。ただ、Search 関数はSharePoint をデータソースとした時では現在委任ができない関数ですので、Filter 関数をStartWith 等で組み合わせながら作成してみてください。
      現時点で委任できる関数は以下に載っております。docs.microsoft.com/ja-jp/connectors/sharepointonline/#power-apps-delegable-functions-and-operations-for-sharepoint
      私のブログでもFilter 操作を紹介しておりますのでご参考ください。geekfujiwara.com/tech/1385/

    • @shinu5226
      @shinu5226 2 роки тому

      すみません、教えていただきたいのですが、今回のようなキーワード検索+ボタンをいくつか作成して、ボタンを選択するとカテゴリー別に表示されるようにしたいのですが、可能でしょうか?
      キーワードでも、ボタンでもギャラリーを表示させるイメージです。

    • @geekfujiwara
      @geekfujiwara  2 роки тому

      可能です。条件の数にだけFilter関数で囲うようにしてあげてください。

    • @shinu5226
      @shinu5226 2 роки тому +1

      @@geekfujiwara ありがとうございます。Search関数をフィルターで囲うということでしょうか…。
      もし、すでにあげられている参考の動画ありましたらおしえていただけますと幸いです💦

    • @geekfujiwara
      @geekfujiwara  2 роки тому +2

      SharePoint にはSearch 関数は委任できませんので(委任の警告が出て確かなデータが取れないことがある)、似たような関数としてFilter関数を使うことになってしまいます。
      複数のFilterを重ねてはないですが、Filter関数の使い方はこちらで説明しておりますのでご参考ください。 geekfujiwara.com/tech/1385/