2
0

More than 1 year has passed since last update.

PowerAppsでいい感じにオリジナルのエラーメッセージを出そう

Last updated at Posted at 2023-09-12

この記事で伝えたいこと

Notify関数を使おう!
エラー、ワーニング、成功、インフォの形で通知が出せるよ!

通知の大きさは変えられないよ
昔はhtmlを使えばいけたみたいだけど、今は変える方法はないっぽいよ

概要

皆さん、いい感じにオリジナルのエラーメッセージ出したいことって有りませんか?
そういうとき、こんな感じでやってませんか?
image.png
これでもいいんですが・・・
これだと、正しく入力できている時に無駄に空白ができちゃいますし、なんだかのっぺりしますよね?
image.png

本題

そんなときはNotify関数を使いましょう。
そうするとすでにある要素の更に上から被さる形で通知を送ることができ、時間経過で消えてくれます。
image.png

Notify(通知で出したい文字,形式,何秒表示するか)

これで呼び出すことができます。

ちなみに上記の例でいうと、OnChangeの項目に以下のように設定すると呼び出せます。
この場合、文字を入力してから空欄にするとOnChangeが発火し、通知が送信されます。

If(IsBlank(AgeInput.Text),Notify("ねんれいをにゅうりょくしてください",NotificationType.Error))

「ねんれい」の隣にある入力欄を「AgeInput」としています。
また、空欄→(入力→確定せずそのまま文字を消して)→空欄とした場合に反応しないのでこのコード自体は必須チェックとしては適していないです。

ほかの使用例

もちろんボタン等にも設定できます。
ボタンを作り、そのボタンに以下のように設定してみてください。

If(Value(AgeInput.Text)>200,Notify("ふざけないでね(0~200のあいだでにゅうりょくしてね)",NotificationType.Warning))

image.png
If関数を使えば色々な場所に使えますね。

オプションとか

まず、通知の形式ですが以下の4種類があります
image.png
冒頭に書いたように、エラー、ワーニング、成功、インフォメーションですね。
既定値は、インフォメーションになります。

また、3つ目の引数に数字を指定することでnミリ秒(既定値は10秒=10000ミリ秒)で消える、といった指定ができます。
ちなみに、0を指定するともう一度Notify関数が実行されるか、ユーザーが消すまで表示されます。

余談

ちなみに、気づいた方もいらっしゃるかもしれませんが実はNotifycationType~~~~は数値を返しています。
image.png
なので、0~3の数字を指定してあげても普通に動いてくれます。(4以降を指定するとエラーになります。)
もっというとこんな無茶苦茶な書き方でも動きます。

Notify("この場合はSuccessと同じ扱い",NotificationType.Warning+NotificationType.Warning)

NotificationType.Warning+NotificationType.Warning
とすることで、数値の扱いとしては「2」となり、NotificationType.Successと同じ扱いになります。

見づらい&正規の方法ではないのでおすすめはしませんが・・・もしかしたら画面の数字とうまく連動させて、とかできるかもしれませんね。
やらないでほしい。

終わりに

いかがでしたでしょうか。
うまく書けば入力チェック等、色んなところで活躍してくれます。
ただ、通知がちょっと小さいのがネックでしょうか。
昔はhtmlを使えばいけたようですが、今は不可能なみたいです。

参考

2
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
2
0