前提・実現したいこと
PowerAppsで、2つのデータリストから文字列や数値を検索をするアプリを作っています。
データリスト2つを連結し、そこから部分一致で検索する処理を実装中に以下の問題が発生しました。
※文字列や数値は、ユーザがテキストボックスから入力できる形としています。
このテキストボックスは複数(下記コードでは2個)あり、何らかの文字列や数値が入力されると
それらを「AND」条件で検索し、結果をGalleryに表示します。
発生している問題・エラーメッセージ
検索処理の実行結果が、完全一致での結果となる(部分一致での検索ができない) ※実行時もコーディング時も、エラーメッセージは出ていません
該当のソースコード
PowerAppsでの言語
1// GalleryのItemsに下記を記載。 2 3Filter( 4 // リスト「List_1」にリスト「List_2」を連結 5 AddColumns( // ④リスト「List_1」に項目「keireki」を追加。項目の内容は③の抽出結果。 6 List_1, 7 "keireki", 8 Filter( // ③リスト「List_1」のEmployeeNumberと「List_2」のkeireki_EmployeeNumberが一致するレコードを抽出 9 RenameColumns( // ②リスト「List_2」の項目名を変更 EmployeeNumber → keireki_EmployeeNumber 10 ShowColumns(List_2, // ①リスト「List_2」から、参照したい列名のみ抽出 ※Excel→SharePointへのデータ取り込み時、デフォルトで設定される項目("登録者"など)がありエラーとなるため、回避 11 "EmployeeNumber", 12 "BusinessContent", 13 "Development_OS" 14 ), 15 "EmployeeNumber", 16 "keireki_EmployeeNumber" 17 ), 18 EmployeeNumber = keireki_EmployeeNumber 19 ) 20 ), 21 // テキスト入力ボックス「TextSearchBox1」、「TextSearchBox_details_1」に入力された文字列を、部分一致で検索 22 (TextSearchBox1.Text in Name) || (IsBlank(TextSearchBox1.Text) = true), 23 (TextSearchBox_details_1.Text in keireki.Developed_OS) || (IsBlank(TextSearchBox_details_1.Text) = true) 24)
試したこと
アプリを実行し、検索実行
・TextSearchBox1に文字を入れて検索
→「Name」列と部分一致するレコードが検索できる(期待通り)
・TextSearchBox_details_1に文字を入れて検索
→「Developed_OS」列と部分一致するレコードが検索できない
完全一致での検索となる(期待と異なる)。
※「Name」列は「List_1」の項目、「Developed_OS」列は「List_2」の項目です。
「List_2」は「List_1」の項目として入れ子状態となっており、そのために
「Developed_OS」列がうまく取得できていないのでは…と推測しています
Filter関数ではなく、Search関数を使って同処理を記載
→「keireki.Developed_OS」が認識されず、「名前が無効です。この識別子は認識されません。」「'.'の無効な使用です。」とエラー表示される
Filter関数で、引数の表記方法を変更
[変更前]
keireki.Developed_OS
[変更後]
List_2[@Developed_OS]
→実行結果変わらず(完全一致での検索となる)
補足情報(FW/ツールのバージョンなど)
・PowerAppsのリリース:3.20023.8
・リストの元データ:Excel→SharePointに取り込んだもの ※リスト2つとも同様です
あなたの回答
tips
プレビュー