見出し画像

アルコールチェック義務化対応アプリを作ったぞ PowerApps編

アルコールチェック義務化対応アプリを作ったので作り方を紹介したいと思います。

下のようなアプリができます。



アルコールチェック義務化とはなにか?


 細かい説明を省きますが「2022年4月から車を5台以上持っている会社(事業所)は運転者に対してお酒を飲んでいるかどうかをチェックしなさい、記録を1年間残しなさい」というルールができました。
記録は紙でもOKですが複数人で入力するものはIT化した方が良い。かつ、スマホで入力できるとなお良い。ということでアプリにしてみました。この記事の通りにすればアプリが作れます、これはiPhoneでもAndroidでも動作します。

 ちょっと話が脱線しますがアルコールチェックのチェック作業は「管理責任者が対面で目視確認、対面できないときはビデオ電話で管理責任者で目視確認」となっています。キビシイです。とくに出張先へ深夜業務の目視確認は難しい。管理責任者は寝ることもできない。このような場面の対策として検知器とスマホを連動して記録するサービスがありますが、ルールを厳守するならアウト。対面でないからです。検知器連動サービスを売り込んでくる会社は「これさえ導入すれば大丈夫」と言ってるんですがどうして適法でないものを適法であるように売り込むんでしょうか。検知器業界内でルールが緩和されることが分かっていて、記録だけでOKになるからじゃないでしょうか、予想ですけど。そうなるんだったらアプリを自作して運用でいいと思います。アプリでなくてもスプレッドシートやNOTIONでもOKだと思います。

アプリを作る手順


 1.PowerAppsに登録
 2.データ保存用のエクセルを用意する
 3.アプリの自動作成
 4.アプリ画面の編集
上記の4つです。
では早速始めましょう

1.PowerAppsに登録する

 この記事ではPowerAppsを使うので事前に登録しておいて下さい。
 下のリンクを参照して頂くと開発者用のプランが無料で登録できます。


2.データ保存用のエクセルを用意する

 ここではエクセルを用意とエクセルの中にテーブルを作ります。
 まずはOneDrive上にデータの保存先にするためのExcelファイルの用意します。OneDriveを開いてExcelファイルを新規作成しましょう。
OneDriveのアカウントとPowerAppsのアカウントは別でもOKです。

エクセルを開いたらシートの一番上の段に見出し項目を作ります。
  日付、運行状況、氏名、点呼執行者、検知器の使用、酒気帯び、疾病疲労等の状況、備考、予備1、予備2  

A列の日付は形式を「短い日付形式」しておきます。

次にA1からJ1まで(日付~予備2)を選択してテーブル化します。
このとき「先頭業をテーブルの見出しとして使用する」にチェックをつけておきます。


テーブル化できたらファイル保存します。
ファイル名は「アルコールチェック表.xlsx」にしました。

3.アプリの自動作成

 ここから本格的にアプリの作成を行います。
PowerAppsにサインイン後の画面から「+作成」を選択→「Excel」を選択

次に接続リストが表示されるのでその中からOneDriveを選択して「作成」をクリック。ここでOneDriveのログイン画面が出たら該当のアカウントを選んで進みます。OneDriveのファイルリストの中から2.でデータ保存用に作ったアルコールチェック表.xlsxを選択します。
下のような画面になっているので「テーブル1」を選択して右下の接続ボタンをクリックします。

「読み込み中…」画面が表示されるので、しばらく待ちます。

 PowerAppsがエクセルを読み込んで自動でアプリが作成されます。
 作成されたら、画面右上の実行ボタン▷を押して試すことが出来ます。

 試すと分かることですが、かなり使いにくいです。
 次の項から整えて完成させます。

4.アプリ画面の編集

 自動で作られたアプリ画面はイマイチなので修正を加えます。

 ・トップ画面の見た目を整える

  アプリ画面左上にテーブル1と表示されていて変なので修正します。
  画面左のツリービューの中の「BrowseScreen1」をクリックします。


テーブル1をクリック、右側のプロパティのテキスト欄に「一覧」と入力します(”一覧”以外でもよい)。

 
次は「>」マークをクリックしたら詳細画面ではなく編集画面に遷移するように変更します。画面左のツリービューの「BrowseScreen1」の奥の「BrowseGallery1」をクリック。画面右側の詳細設定のOnSelect欄
「Navigate(DetailScreen1, ScreenTransition.None)」

「EditForm(EditForm1);Navigate(EditScreen1,ScreenTransition.None)」に変えます。OnSelectはクリックされたら○○するという意味です。


 ・編集画面を整える

  トップ画面と同じように左上にテーブル1と表示されていて変なので修正しましょう。「テーブル1」を選択、右側のプロパティのテキスト欄に「報告画面」と入力します。


 表示項目を並び替えます。
 左側ツリービューの「EditScreen1」の下の「EditForm1」をクリックします。続けて右側のEditForm1プロパティの「フィールドの編集」をクリック。


 画面中央にフィールドの編集画面がでたら、各項目をマウスでドラッグさせて順番を入れ替えます。
 最初に表示されている画面は自動で作成された画面なので表示項目が少ないかもしれません。表示項目が少ない場合「フィールドの追加」を押して不足分を追加してください。この記事を書いているときは「運行状況」と「酒気帯び」が隠れていました。それぞれチェックを付けて追加を押すと表示されます。

 適便に並べ替えたところ、下のようにしました。

 次に入力欄の「運行状況」を選択式に修正します。この項目には決まった文言「運行前」「中間」「運行後」が入るので直入力より選択式の方が使い勝手が良くなります。
もう一度「フィールドの編集」画面を呼び出して「運行状況」の横の下矢印を押してメニュー表示してコントロールの種類を「テキストの編集」から「許可値」に変更します。

 「フィールドの編集」画面を閉じ、次に入力欄「運行状況」をクリック。右側、詳細設定の「プロパティを変更するためにロックを解除します」をクリックしてロック解除。Items欄を「Parent.AllowedValues」から
 「 ["運行前","中間","運行後"] 」 に変更( [ と ] を忘れないように)。

 このとき「"」と「”」を間違えないようにしましょう。
 間違えていたら赤色のエラーマークが表示されます。

 同じような操作で
 「酒気帯び」も選択できるようにしましょう
 選択肢は「有」「無」にします。["有","無"]

  
 同じような操作で
 「検知器の使用」も選択できるようにしましょう
 選択肢は「有」「無」にします。["有","無"]


 同じような操作で
 疾病疲労等の状況も選択できるようにしましょう
 選択肢は「良好」「普通」「悪い」にします。["良好","普通","悪い"]
  
  
 予備1と予備2を非表示にします。
 入力欄「予備1」をクリック。右側、詳細設定の「プロパティを変更するためにロックを解除します」をクリックしてロック解除。
 詳細設定の下の方にあるVisibleを「true」から「false」に変更。
「予備2」も同じ操作で非表示にします。
  
  
 日付には自動的に今日日付が入るようにします。
 入力欄「日付」をクリック。右側、詳細設定の「プロパティを変更するためにロックを解除します」をクリックしてロック解除。
Default欄に「If(EditForm1.Mode = FormMode.New,Today(),ThisItem.日付)」と入力します。これは報告画面が新規入力の場合は今日日付にするという意味です。報告画面(EditForm1.Mode)が新規(FormMode.New)なら日付欄(ThisItem.日付)を今日日付(Today)にするという意味です。
 時間の入力欄はいらないのでVisibleをfalseにして非表示にしておきましょう。


 ・トップ画面の見た目をもう一度整える
 
 トップ画面には入力されたデータの一覧が並ぶのですが表示項目が滅茶苦茶なので表示項目を日付、氏名、運行状況に修正します。  
日付:
 左側ツリービューの中の「BrowseScreen1」をクリック。
 BrowseGallery1の中のTitle1をクリック
 詳細設定のText欄を「ThisItem.日付」に変更


氏名:
 同じような操作で
 BrowseGallery1の中のSubtitle1をクリック、
 詳細設定のText欄を「"氏名:" & ThisItem.氏名」に変更。

運行状況:
 BrowseGallery1の中のBody1をクリック、
 詳細設定のText欄を
「"運行状況:" & ThisItem.運行状況 & "  酒気帯び:" & ThisItem.酒気帯び」に変更。



 酒気帯びがある場合、赤で強調表示できるようにします。
 BrowseGallery1の中のBody1をクリック
 詳細設定のColor欄を「If(ThisItem.酒気帯び="有",RGBA(255, 0, 0, 1),RGBA(0, 0, 0, 1))」に変更。



 日付順に表示します
 BrowseGallery1をクリック
 詳細設定のItems欄を
「SortByColumns(Search([@テーブル1], TextSearchBox1.Text, "氏名","点呼執行者","備考"), "日付", If(SortDescending1, Descending, Ascending))」に変更。SortByColumnsは並べ替えをしたテーブルを返す関数でSearch関数で絞込をしています。


5.完成

 ひとまず完成です。早い人なら30分かからないと思います。
もうちょっと手を加えて、走行距離入力や免許証携帯、情報をメール通知したり、他のシステムと連携してもいいかもしれません。いろいろやってみると面白いと思います。


#アルコールチェック #業務アプリ #ノーコード #nocode #powerapps #ローコード #つくってみた


いいなと思ったら応援しよう!

この記事が参加している募集