LoginSignup
7
8

More than 5 years have passed since last update.

PowerAppsで入力ボタンを作ってみた

Last updated at Posted at 2018-07-10

今回の投稿背景

来客受付の電子化は好評です。
実際はタブレットに表示しているのですが
入力には手書き入力IMEを使用しています。

バッテリが死んでいるSurface 2 RT(Windows 8.1 RT)と
Androidタブレットの両方で試していますが
やはり入力するとなると手書き認識に時間がかかってしまい
スムーズな登録とはちょっと言えません。

なので来訪が分かっているお客様には
予め予約番号を発行しておいて、それを入力させるってのが
一番スマートなんじゃないかなという妄想に駆られました

とりあえずデモ

Twitterに動画を上げましたので、そちらを埋め込んでみました。


作り方

材料

ラベル・・・・・・・・ 1個(コンテキスト変数表示用)
ボタン・・・・・・・・11個(0~9の入力ボタン+クリアボタン)
コンテキスト変数・・・ 1個

手順

  1. ラベルを1つ作ります。名前はTextboxとします。
  2. TextboxのTextプロパティにVar1をセットします。
  3. ボタンを1つ作ります。名前はPush1とします。
  4. Push1のTextプロパティに1をセットします。
  5. OnSelectプロパティに右の内容をセットします。UpdateContext({Var1: Var1&Push1.Text})
  6. Push1を9個コピーし、Push2~0を作成します。それぞれのTextプロパティも2~0をそれぞれセットします。
  7. ボタンを新しく一つ作ります。名前はCLEARとします。
  8. Onselectプロパティに右の内容をセットします。 UpdateContext({Var1: ""})

完成画面

入力制御.png

解説

変数についてはこちらのサイトを参考
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/working-with-variables

ラベルはTextプロパティの内容を表示する機能なので
Textプロパティにコンテキスト変数のVar1を指定。
各ボタンには0~9まで番号をこれまたTextプロパティに指定していて、それがボタンの表示に使用されている。
Push1.Text とすると、戻り値はPush1のTextプロパティの値(1)を返してくれるので
それをコンテキスト変数のVar1に代入しているという感じ。
Var1に代入されたら、それを表示するようにTextboxに宣言しているので、表示されるという仕組み。

ただ、さっきのリンク先サイトのように
変数に+で新たな数値を入れると、加算扱いとなってしまう。
※Excelも一緒
なので、&を使用することで文字列結合を行うことができる。

コンテキスト変数を使用したのは、この画面内のみで使用するため。
実際に使用するときも、検索用途しか使わないので。
アプリ内の共通変数として使いたいなら、グローバル変数とかコレクション変数を使うのかな

まとめ

関数の使い方はほんとExcelにめっちゃ似てる。
変数の考え方がいくつかあるからちょっとその辺はよく整理しないと
実運用のときに苦労するかも

ちなみに、作成時間は試行錯誤含めて20分ぐらいです。
むしろこの投稿をするのに時間かかってるわww

7
8
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
7
8