見出し画像

Power Apps 教えてAkiraせんせー!⑤

ちっぴです。
@akira_365🐟さんの講習5回目が終了しましたー!


4回目はこちら🎵

今回は
Filter関数、ドロップダウンコントロールの仕組み、部分一致、全体一致
などを学びました。

では作成していきます。
オーサリングメニューテキスト入力
Akira🐟さん「TextInputコントロールは不思議な仕様になっています。ヒントのテキストに、入力を促す文字が入っていると良いのかと思います」

プロパティペインプロパティ既定「テキスト入力」の文字を切り取り→ヒントのテキスト「テキスト入力」の文字を貼り付け

オーサリングメニュー入力→ドロップダウン

ドロップダウンコントロールのサイズなどは指定しないのでそのまま配置します

Akira🐟さん「ItemsプロパティにDropDownSampleというテーブルが入っています、どういうテーブルか確認してみましょう。下矢印で展開するとValueが1,2,3と出てきます。1,2,3という数字が入っているひとつの配列ということがわかると思います」

ExcelだとA1セルに1,A2セルに2,A3セルに3という感じ
前にやりましたね~と言われました・・・忘れてる💦

こちらを応用していきます!

ギャラリーの素材になっているデータソース、こちらもテーブルです。

こちらを、ドロップダウンのテーブルに入れていきます。
テーブルは入ったのですが、項目があるのに関わらず何も表示されていない・・・

プロパティペインプロパティValueの値を「Company」へ変更します。

うーん、社名が重複してる~

関数を使って選択肢の重複を消そう!

Distinct関数登場😎 Distinct(データソース,列名)

データソースに準じた選択肢

Akira🐟さん「この状態にしておくと、今後作成画面を作っていくのですが、作成されたときに○社という項目が増えたとしても、データソースからCompanyの選択肢をとっているので、新たに○社を加えたとしてもデータソースに組み込まれると選択肢が作られるということがわかると思います」

ここで確認😶‍🌫️😶‍🌫️😶‍🌫️

最終的にフィルタリングに使用するのですが、現在はドロップダウンで選ぶことしかできない!

Emptyにするには・・・・

ドロップダウンコントロールのプロパティペイン詳細設定AllowEmptySelection「false」→「true」
Default「"1"」→「""(空白)」

この状態でプレビュ~

AllowEmptySelectionの効果

ちなみにテキストラベルに項目名を入力し右詰めにすることで選択肢を指しているように見えます。

わかりやすい名前をつけましょう

同じようにデータソースからそれぞれの列を重複しないように持ってきます。詳細設定からAllowEmptySelectionDefaultも同様に。

カテゴリ、記入者を追加

Akira🐟さん「おそらく、記入者というところにエラーが出ると思います。こちら後でリカバリーしますのでまずは同じように作ってみてください」

Distinctを使う場合だけの注意点!!
選択肢が出てこない場合がある😱

Akira🐟さん「データソースの読み込みのときにエラーが出ているパターンがよく確認されます。ですので一度エラーを出して、エラーを切ると読み込まれることがあります」

保存後開きなおしたりなどいろいろやってみるそうです

以下の黄色部分内をクリックしないと反応なしですが、とりあえずOKということで。

Distinctのエラーは改善要望中のようですので、エラーが出ても落ち着こう

では、エラーリカバリーの部分です。

会社名のドロップダウンコントロール
Items=Distinct(TblReport,Company)

うんうん👍

カテゴリのドロップダウンコントロール
Items=Distinct(TblReport,Category)

なるほどー👍

となると、記入者のドロップダウンコントロールは
Distinct(TblReport,登録者)
でいいんじゃないの?

Akira🐟さん「これエラーが出るはずです。では何のエラーなのか、エラーリカバリーの際、ちゃんと×マークを確認しましょう」

データソースの中身を確認しましょう

データソース:TblReport
列の追加→列の表示/非表示→設定→リストの設定
登録者は「ユーザーまたはグループ」

1行テキストではない

Akira🐟さん「ユーザーの情報すべて、これはテーブルなんですね。レコードとも呼ばれます。いろいろな情報が入っているのでこの中の名前だけを持ってこないと、今はレコードなのでエラーになります」

登録者はユーザーの情報すべてです。
Distinct(TblReport,登録者.DisplayName)
としましょう。

配置したコントロールに名前をつけていきます😊

お次はFilter

Akira🐟さん「Filter関数ですが、絞りこむ関数と言われると、ボタンを配置してそのボタンを押したら絞り込むよみたいなイメージがあると思います。ボタンにFilter関数をのっけると勘違いされる方がいます。間違えてはいけないのが、フィルターされる側に仕込むものです」

・絞り込むといいう命令ではなく適応するテーブルの値を変える
・フィルターしたものを表示する関数

まず、特定条件のものだけを、データソース:TblReportから絞り込む

これだと一生
"ブッキング漏れの対応について"
しか見れない

可変にしていきます!

『テキスト入力』txtSearch、こちらのテキストとタイトルが同じものというように書き換えます。

Title=txtSeachのTextプロパティの値、ここがタイトルと同一のもの
フィルターされる側に仕込む!!!!!!!

完全一致検索で検索はできるようになりました。
ただ、完全一致・・・あまり使わないですね。

Akira🐟さん「部分一致検索、Power Appsで可能です。~の中にという意味のinという識別子を使います。~の中にという言葉を使って条件を工夫しましょう」

タイトルの中に txtSeach.Text があるよという条件式

in を使うと部分一致でも検索してくれるので、空白でもすべて表示されるようになっています。
in すごーい😋今回はここまでです。

次回は、テキスト入力だけでなく、会社名やカエゴリー、記入者など複数でのフィルター、バックオフィスはバックオフィスで見たいよなどの順番の並べ替えのやり方を学んでいきます。

この記事が気に入ったらサポートをしてみませんか?