0
0

【Power Apps】コレクションに含まれる要素の判定を行う

Posted at

はじめに

 Power Appsにて、普通のプログラミングのように配列内の要素をforeachでぶん回して判定処理をさせたいと思ったことがあるかと思います。(カンマで区切られた文字列に対して、それぞれの要素があるフォーマットに従っているか など・・・)
 が、悲しいことにPower Appsではforeachにあたる「ForAll」関数内では変数を更新する「Set」「UpdateContext」関数を利用することができません。
 「Collect」関数を用いて判定OK要素を格納するコレクションとNG要素を格納するコレクションを用意することで代替できます。気持ち悪いことこの上無いですが、仕方がないのでこうするしかありません。別の良い案をご存じの方居たらコメントください。

実現方法

以下のような画面で、「TextInput」にカンマ区切りで入力されたメールアドレスが正しいかを判定しています。ボタンのOnSelect()に以下の処理を入れて、カンマ区切りした値が正しいか正しくないかに応じて別のコレクションに格納します。

image.png

Clear(ValidCollection);
Clear(NotValidCollection);
ForAll(
    Split(
        TextInput1.Text,
        ","
    ),
    If(
        IsMatch(
            Value,
            Match.Email
        ),
        Collect(
            ValidCollection,
            Value
        ),
        Collect(
            NotValidCollection,
            Value
        )
    )
)

以下のようにエラーメッセージ用ラベルも用意することでそれっぽいエラー判定ができるようになります。

image-1.png

If(
    CountRows(NotValidCollection) > 0,
    "エラーがあります"
)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0